TG-PlatformPlus/qml/Ability.qml

249 lines
8.6 KiB
QML
Raw Normal View History

2026-03-02 14:29:58 +08:00
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)
}
}
}