chenyincheng
2022-12-23 3e0c7a2322569d1d3ac6b25e76f9d506caf907ce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
 
import { cwd } from 'process'
import { ipcRenderer } from 'electron'
import {creatorClient} from './sockteStomp'
import {sockteStore} from '@/stores/sockteInfo'
import { patientInfoStore } from '@/stores/patient'
import os from 'os'
// import internetAvailable  from "internet-available"
var internetAvailable = require("internet-available")
import { ElMessage, ElMessageBox } from 'element-plus'
import { on } from 'events'
 
interface ResultInfo{
  clientCode:string;
  commCode :string;
  deviceType:string;
  deviceName :string;
  result :string;
  resultTime :string
}
let deviceList=[]
let clientCode=''
// 主进程发送消息到渲染进程
ipcRenderer.on('message-koa', (_event, ...args) => {
  
  console.log('koa返回http请求消息', ...args)
  const Result:ResultInfo=args[0]
  writeResult(Result)
})
ipcRenderer.on('main-process-message', (_event, ...args) => {
  console.log('[Receive Main-process message]:', ...args)
})
ipcRenderer.on('main-process-message', (_event, ...args) => {
  console.log('[Receive Main-process message]:', ...args)
})
// 主进程获取配置项完成sockte注册和httpshu
ipcRenderer.on('getConfigData',(_event,...args)=>{
  console.log("config.json",...args)
  if(args!==null){
    if(args[0]===undefined){
      // alert("配置文件没有写入配置,请检查配置文件 文件路径:"+args[2])
      ElMessageBox.prompt('没有设定客户编号,请输入客户编号并保存', '警告', {
        confirmButtonText: '保存',
        showClose:false,
        showCancelButton:false,
        inputErrorMessage: 'Invalid Email',
      })
        .then(({ value }) => {
          const mode={
            clientCode:value,
            machineName:os.hostname(),
            screenTimeout: 60,
          }
          ipcRenderer.send('setConfingData',mode)
        }) 
      
    }
    else if(args.length>0&&args[0].length>0){
      clientCode=args[0]
      // 建立sockte 通讯
      creatorClient([],clientCode)
  
    }
  }
  
})
ipcRenderer.on("getScreenTimeout",(_event,args)=>{
  if(args!==undefined){
    patientInfoStore().setViewNumber(args)
  }
})
ipcRenderer.on("getPcName",(_event,arg)=>{
  if(arg!==undefined){
    sockteStore().setPcName(arg)
  }
})
setInterval(function(){
  // 检查网络状态
  internetAvailable({
    domainName: "baidu.com",
    host: '114.114.114.114' 
  }).then(()=>{
    sockteStore().setnetLink(true)
  }).catch(()=>{
    sockteStore().setnetLink(false)
    console.log("网路链接失败")
  })
},10000)
const writeResult=(res: ResultInfo)=>{
  console.log(res)
  console.log(`写入结果类型${res.deviceType},写入结果=${res.result}`)
  switch(res.deviceType){
      case '读卡器':
          console.log('读卡器收到消息')
          if(res.clientCode!==null){
              sockteStore().setdkqSockte(
                  {
                      deviceName:res.deviceName,
                      type:"读卡器",
                      result:res.result,
                      resultTime:res.resultTime,
                      state:2
                  }
              )
          }
          break
      case "体重秤":
          sockteStore().setweightSockte(
              {
                  deviceName:res.deviceName,
                  type:"体重秤",
                  result:Number(res.result).toString(),
                  resultTime:res.resultTime,
                  state:2
              }
          )
          break
      case "血压计":
          sockteStore().setxyjSockte(
              {
                  deviceName:res.deviceName,
                  type:"血压计",
                  result:res.result,
                  resultTime:res.resultTime,
                  state:2
              }
          )
          break
      default:
          console.log('有配置类型没有匹配')
  }
}