import QtQuick import "./common" MainWinForm { id: self anchors.centerIn: parent width: parent.width height: parent.height clip: true Alert{id: alert;z:99} Component.onCompleted: getCodecList() Connections{ target: self // 关闭 function onCloseClick() { close() } // 登出 function onLogoutClick() { if(lstRunning) _command.stopLstCmd() g_curPro = {"id":"","name":"","operator":"", "date":"","remark":"", "path": "", "tsdb_name":"", "test_info":"", "history":""} g_session = {"id":"","name":"","password":"","role":"","role_name":"","valid":""} root.visible = false login.show() } // 弹出创建工程窗口 function onCreateProClick() { _createDialog.visible = true } function onDeleteDialogAcceptClick() { var pro = proModel.get(_proTableView.currentRow) var result = backend_proxy.delete_project(pro.id) if(result.code !== 200) { alert.show(result.msg) return } if(pro.id == g_curPro.id) { g_curPro = {"id":"","name":"","operator":"", "date":"","remark":"", "path": "", "tsdb_name":"", "test_info":"", "history":""} } result = backend_proxy.get_projects() if(result.code === 200) { refreshProData(result.data) } } function onOpenDialogAcceptClick() { if(_proTableView.currentRow < 0) return var pro = proModel.get(_proTableView.currentRow) if(!pro) return g_curPro = {"id":pro.id,"name":pro.name,"operator":pro.operator, "date":pro.date,"remark":pro.remark, "path": pro.path, "tsdb_name":pro.tsdb_name, "test_info":pro.test_info, "history":pro.history} var result = backend_proxy.selected_project(g_curPro.id) if(result.code !== 200) { alert.show(result.msg) } if(g_curPro.test_info != "" && g_curPro.test_info != undefined) { try { g_proData = JSON.parse(g_curPro.test_info) } catch(e){ } } if(g_curPro.history != "" && g_curPro.history != undefined) { try { g_proHistoryData = JSON.parse(g_curPro.history) } catch(e){ } } openCom() updateGrafana() } function is_serial_port_open() { var result = backend_proxy.is_serial_port_open() if(result.code !== 200) { alert.show(result.msg) } return result.data } // 创建工程 function onCreateDialogAcceptClick() { var json = {"name":_tfProName.text, "operator": g_session.id, "remark": _tfRemark.text} var result = backend_proxy.add_project(JSON.stringify(json)) if(result.code === 200) { g_curPro = result.data result = backend_proxy.selected_project(g_curPro.id) if(result.code === 200) { if(g_curPro.remark != "") g_proData = JSON.parse(g_curPro.remark) openCom() updateGrafana() } else { alert.show(result.msg) } } else { alert.show(result.msg) } _tfProName.text = "" _tfRemark.text = "" } // 删除工程窗口 function onDeleteProClick() { var result = backend_proxy.get_projects() if(result.code === 200) { refreshProData(result.data) _openDialog.title = "删除工程" _openDialog.visible = true } else { alert.show(result.msg) } } // 获取工程打开窗口 function onOpenProClick() { var result = backend_proxy.get_projects() if(result.code === 200) { refreshProData(result.data) _openDialog.title = "打开工程" _openDialog.visible = true } else { alert.show(result.msg) } } } // 打开串口 function openCom() { var result = backend_proxy.open_serial_port() if(result.code !== 200) { alert.show(result.msg) _statusToolbar.setComStatus(false) } else { _statusToolbar.setComStatus(true) } } property string pattern: "_(.*?)\\." function getCodecList() { var result = backend_proxy.get_codec_lists() if(result.code === 200) { var checks = [""] var codecs = [""] var dpchecks = ["无"] var dpcodecs = ["无"] var data = result.data var regExp = new RegExp(pattern) var match = [] for(var i = 0; i < data.length; ++i) { var item = data[i] if(item.indexOf("check_") > -1) { checks.push(item) match = regExp.exec(item) if(match.length === 2) dpchecks.push(match[1]) } else if(item.indexOf("codec_") > -1) { codecs.push(item) match = regExp.exec(item) if(match.length === 2) dpcodecs.push(match[1]) } } check_lists = checks codec_lists = codecs codec_display_lists = dpcodecs check_display_lists = dpchecks } else { alert.show(result.msg) } } function defaultCreatePro() { var json = {"name": g_settingProFirstName + new Date().getTime().toString(), "operator": g_session.id, "remark": ""} var result = backend_proxy.add_project(JSON.stringify(json)) if(result.code === 200) { g_curPro = result.data result = backend_proxy.selected_project(g_curPro.id) if(result.code === 200) { if(g_curPro.remark != "") g_proData = JSON.parse(g_curPro.remark) updateGrafana() update_proData() openCom() } else { alert.show(result.msg) } } else { alert.show(result.msg) } } // 更新Grafana Time function updateGrafanaTime(start, stop) { var url = "http://" + g_settingGrafanaHost + ":" + g_settingGrafanaPort var result = backend_proxy.get_dashboard_uid(url,g_settingGrafanaToken,g_settingGrafanaDashboards2) if(result.code == 200) { if (result.data.length == 1) { var uid = result.data[0].uid g_settingGrafanaDashboardsUrl2 = result.data[0].url backend_proxy.update_dashboard_time(uid, url,g_settingGrafanaToken,start, stop) } } } // 更新Grafana bucket function updateGrafana() { var url = "http://" + g_settingGrafanaHost + ":" + g_settingGrafanaPort var result = backend_proxy.get_dashboard_uid(url,g_settingGrafanaToken,g_settingGrafanaDashboards1) if(result.code == 200) { if (result.data.length == 1) { var uid = result.data[0].uid g_settingGrafanaDashboardsUrl1 = result.data[0].url backend_proxy.update_dashboard_data(uid,url,g_settingGrafanaToken, g_curPro.name) } } result = backend_proxy.get_dashboard_uid(url,g_settingGrafanaToken,g_settingGrafanaDashboards2) if(result.code == 200) { if (result.data.length == 1) { var uid = result.data[0].uid g_settingGrafanaDashboardsUrl2 = result.data[0].url backend_proxy.update_dashboard_data(uid, url,g_settingGrafanaToken,g_curPro.name) } } } // 工程数量不足默认弹出创建 function checkProCountClick() { var result = backend_proxy.get_projects() if(result.code === 200) { if(result.data.length > 0) { refreshProData(result.data) _openDialog.visible = true } else _createDialog.visible = true } else { _createDialog.visible = true // alert.show(result.msg) } } function refreshProData(data) { proModel.clear() var arr = data for(var i = 0; i < arr.length; ++i) { var obj = {} try { obj = (arr[i].test_info == "" || arr[i].test_info == undefined) ? {} : JSON.parse(arr[i].test_info) } catch(e) { console.info(e) } proModel.append({ "id": arr[i].id, "name": arr[i].name, "date": arr[i].date, "last_date":arr[i].last_date, "remark":arr[i].remark, "test_info": arr[i].test_info == undefined ? "" : arr[i].test_info, "history": arr[i].history == undefined ? "" : arr[i].history , "csperson": !!obj.csperson ? obj.csperson : "", "cslocation": !!obj.cslocation ? obj.cslocation : "", "cscompany": !!obj.cscompany ? obj.cscompany : "", "cssummary": !!obj.cssummary ? obj.cssummary : "" }) } } }