249 lines
8.6 KiB
QML
249 lines
8.6 KiB
QML
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)
|
|
}
|
|
}
|
|
|
|
}
|