import QtQuick import Qt.labs.settings AbilityForm { id: self anchors.fill: parent property var cmdSets: [] property var cmdPlans: ({}) property var planExtendDatas property var mapMeasure: ({}) property var showEnd: true property var hasLoaded: false property var mapCharts:({}) property var isAdmin : true property var lstRunning: false Connections{ target: self function onEditPlanListViewClick() { get_queues() var data = planLstModel.get( _editPlanListView.currentIndex).cmd_sets var cmdSets = JSON.parse(data) planModel.clear() for(var i = 0; i < cmdSets.length; ++i) { var item = JSON.parse(cmdSets[i].extendData) var obj = {} obj.id = item.id obj.asd = item.asd obj.rsd = item.rsd obj.speed = item.speed obj.direction = item.direction var runtime = item.runtime obj.displayruntime = (Number(runtime) / 1000).toString() obj.runtime = runtime planModel.append(obj); } // timer.start() } function onUpdatePlans() { cmdSets = [] for(var i = 0; i < planModel.count; ++i) { var _cmdPlans = planModel.get(i) var runtime = Number(_cmdPlans.displayruntime) * 1000 var cmdplan = {"id":"1001","asd":_cmdPlans.asd,"rsd":_cmdPlans.rsd,"speed":_cmdPlans.speed,"direction":_cmdPlans.direction,"displayruntime":_cmdPlans.displayruntime,"runtime":runtime.toString()} cmdSets.push({"id": planCmdId, "delay": runtime,"loop": "1", "extendData": JSON.stringify(cmdplan)} ) } save_queues() get_queues() } function onAddCmdPlanClick() { var cmdPlans = {"id": planCmdId,"asd": "0", "rsd": "0", "speed": "0", "direction": "1", "runtime": "0", "displayruntime": "0"} cmdSets.push({"id": planCmdId, "delay": "0","loop": "1", "extendData": JSON.stringify(cmdPlans)} ) planModel.append(cmdPlans) save_queues() } function onDelCmdPlanClick(row) { if(row < planModel.count) planModel.remove(row) updatePlans() } function onCreatePlanClick() { cmdSets = [] _tfPlanRemark.text = "" _tfPlanName.text = "" _createPlanDialog.visible = true } function onDeletePlanClick(cmdPlanId) { var result = backend_proxy.del_queue(cmdPlanId) if(result.code !== 200) { alert.show(result.msg) } planModel.clear() get_queues() } function onRunPlanClick(cmdPlanId) { var result = backend_proxy.send_queue_motor(cmdPlanId, g_curPro.id, g_session.id) if(result.code !== 200) { alert.show(result.msg) } } function onRunStopPlanClick(cmdPlanId) { var result = backend_proxy.stop_queue(cmdPlanId, g_curPro.id, g_session.id) if(result.code !== 200) { alert.show(result.msg) } lstRunning = false } function onCreatePlanDialogAcceptClick() { var queue = { 'name': planFirstName + _tfPlanName.text, 'operator': g_session.id, 'remark': _tfPlanRemark.text, 'cmd_sets': JSON.stringify(cmdSets) } cmdSets = [] var result = backend_proxy.create_queue(JSON.stringify(queue)) if(result.code !== 200) { alert.show(result.msg) return } get_queues() } function onJsBtnClick() { jsText = codedialog.showEditor(jsText) var regExp = /\t/g; jsText = jsText.replace(regExp, ' '); } function onCreateCmdDialogAcceptClick() { var obj = { 'instrument':_cbCmdInstrument.currentText, 'module': _cbCmdModule.currentText, 'type': _cbCmdType.currentText, 'name': _tfCmdName.text, 'cmd': _tfCmdWord.text, 'data': _teCmdData._te.text, 'rsp_len': _tfYdcd.text, 'rsp_timeout': _tfCs.text, 'data_encode': codec_lists[_cbEncode.currentIndex], 'rsp_decode': codec_lists[_cbDecode.currentIndex], 'data_check': check_lists[_sendCheck.currentIndex], 'rsp_check': check_lists[_receiveCheck.currentIndex], 'script': Qt.btoa(jsText), 'remark': _tfYmsm.text } var result = "" if(_createCmdDialog.title == "编辑指令") { obj.id = planCmdId result = backend_proxy.update_cmd_set(JSON.stringify(obj)) if(result.code !== 200) { alert.show(result.msg) } } } function onCmdEditClick(cmdId) { if(lstRunning) return var model = get_cmd_set(cmdId) _cbCmdInstrument.currentIndex = !!model['instrument'] ? _cbCmdInstrument.find(model['instrument']) : 0 _cbCmdModule.currentIndex = !!model['module'] ? _cbCmdModule.find(model['module']) : 0 _cbCmdType.currentIndex = !!model['type'] ? _cbCmdType.find(model['type']) : 0 var _cbEncodeText = !!model['data_encode'] ? model['data_encode'] : "" _cbEncode.currentIndex = getIndex(codec_lists, _cbEncodeText) var _cbDecodeText = !!model['rsp_decode'] ? model['rsp_decode'] : "" _cbDecode.currentIndex = getIndex(codec_lists, _cbDecodeText) var _sendCheckText = !!model['data_check'] ? model['data_check'] : "" _sendCheck.currentIndex = getIndex(check_lists, _sendCheckText) var _receiveCheckText = !!model['rsp_check'] ? model['rsp_check'] : "" _receiveCheck.currentIndex = getIndex(check_lists, _receiveCheckText) _tfCmdName.text = !!model['name'] ? model['name'] : "" _tfCmdWord.text = !!model['cmd'] ? model['cmd'] : "" _teCmdData._te.text = !!model['data'] ? model['data'] : "" _tfYdcd.text = !!model['rsp_len'] ? model['rsp_len'] : "" _tfCs.text = !!model['rsp_timeout'] ? model['rsp_timeout'] : "" _tfYmsm.text = !!model['remark'] ? model['remark'] : "" var aJsText = !!model['script'] ? model['script'] : GL.aJsText jsText = Qt.atob(aJsText) _createCmdDialog.title = "编辑指令" _createCmdDialog.visible = true } } function get_cmd_set(cmdId) { var result = backend_proxy.get_cmd_set(cmdId) if(result.code === 200) { return result.data } else { alert.show(result.msg) } return null } function save_queues() { if(_editPlanListView.currentIndex < 0) return var planLstId = planLstModel.get(_editPlanListView.currentIndex).id var planLstName = planLstModel.get(_editPlanListView.currentIndex).name var planLstRemark = planLstModel.get(_editPlanListView.currentIndex).remark var queue = { 'id':planLstId, 'name': planLstName, 'repeat_nums': "1", 'operator': g_session.id, 'remark': planLstRemark, 'cmd_sets': JSON.stringify(cmdSets) } var result = backend_proxy.update_queue(JSON.stringify(queue)) if(result.code !== 200) { alert.show(result.msg) return } } function get_queues() { var result = backend_proxy.get_queues() if(result.code === 200) { planLstModel.clear() result.data.forEach(function(item){ if(item.name.indexOf(planFirstName) > -1) { item.status = "0" item.repeat_nums = 1 item.queue_delay = 0 planLstModel.append(item) } }) if(_editPlanListView.currentIndex > -1) _editPlanListView.currentIndex = _editPlanListView.currentIndex } else { alert.show(result.msg) } } }