From f6d62eaf70440d3183cad494d08a9e8c96c3d9d8 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期五, 08 九月 2023 12:02:36 +0800
Subject: [PATCH] 增加体重秤串口通讯

---
 electron/main/index.ts |   55 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/electron/main/index.ts b/electron/main/index.ts
index d4ac784..771a6e6 100644
--- a/electron/main/index.ts
+++ b/electron/main/index.ts
@@ -1,13 +1,14 @@
 import { app, BrowserWindow, shell, ipcMain,Menu } from 'electron'
 import { release } from 'os'
 import { join } from 'path'
+// import updater from "../preload/autoUpdate.js"
+import logger from '../preload/logger.js'
 import fs from 'fs'
 import iconv from 'iconv-lite'
 //koa----
 import  Koa from 'koa';
 import  Router from 'koa-router';
 const koaBody = require('koa-body');
-
 const creatorKoa=(win)=>{
   const app = new Koa();
   const router = new Router();
@@ -26,7 +27,6 @@
       "data": body,
       "message": "接收成功"
   }
-  //   writeResult(body)
   })
 
   app.use(router.routes());
@@ -41,11 +41,6 @@
 const  store = new Store();
 console.log(store.path)
 
-// 读
-// console.log(store.get('clientCode'))
-// console.log(store.get('deviceList'))
-// 写
-// store.set("testr","test001")
 
 // Disable GPU Acceleration for Windows 7
 if (release().startsWith('6.1')) app.disableHardwareAcceleration()
@@ -66,16 +61,21 @@
 const url = `http://${process.env['VITE_DEV_SERVER_HOST']}:${process.env['VITE_DEV_SERVER_PORT']}`
 
 async function createWindow() {
+  
   win = new BrowserWindow({
     title: 'Main window',
-    fullscreen: true,
-    // autoHideMenuBar:true, 
+    transparent: true,
+    frame:store.get('debug'),//关闭菜单栏
+    fullscreen: true,// 开启默认全屏
+    kiosk: true,
+    // autoHideMenuBar:store.get('debug'), 
     webPreferences: {
       preload: splash,
       nodeIntegration: true,
       contextIsolation: false,
     },
   })
+
   if (app.isPackaged) {
     win.loadFile(join(__dirname, '../../index.html'))
   } else {
@@ -86,10 +86,9 @@
   // 测试推送消息到Renderer进程
   win.webContents.on('did-finish-load', () => {
     creatorKoa(win)
-    win?.webContents.send('message-koa','nihao0-----')
     win?.webContents.send('getScreenTimeout',store.get('screenTimeout'))
     win?.webContents.send('getPcName',store.get('machineName'))
-    win?.webContents.send('getConfigData',store.get('clientCode'),store.get('devices'),store.path)
+    win?.webContents.send('getConfigData',store.get(),store.path)
   })
 
   // Make all links open with the browser, not with the application
@@ -106,6 +105,9 @@
   if (process.platform !== 'darwin') app.quit()
 })
 
+
+
+
 app.on('second-instance', () => {
   if (win) {
     // 如果用户试图打开另一个窗口,则将焦点放在主窗口上
@@ -113,6 +115,14 @@
     win.focus()
   }
 })
+app.on('render-process-gone',(e,w,d)=>{
+  logger.info(`${new Date()}渲染进程被杀死${d.reason}\n`)
+  // 基于我在开发的程序本身的设定,此处重启应用就可以了
+  app.relaunch({args: process.argv.slice(1).concat(['--relaunch'])});
+  // 尝试关闭所有窗口
+  app.quit();
+})
+
 
 app.on('activate', () => {
   const allWindows = BrowserWindow.getAllWindows()
@@ -122,6 +132,10 @@
     createWindow()
   }
 })
+// 自动更新
+// app.on('ready', async () => {
+//   updater()
+// })
 
 // 新窗口示例arg:新的Windows url
 ipcMain.handle("open-win", (event, arg) => {
@@ -140,6 +154,12 @@
     // childWindow.webContents.openDevTools({ mode: "undocked", activate: true })
   }
 })
+// 主进程处理日志定义
+ipcMain.handle('logger', async(event, arg) => {  //与渲染进程通信
+  return new Promise((resolve, reject) => {
+    logger.info(arg)
+  })
+})
 // 渲染端发送消息到主进程
 ipcMain.on("winClose",()=>{
   win?.close()
@@ -151,18 +171,5 @@
     "clientCode": arg.clientCode,
     "machineName": arg.machineName,
     "screenTimeout": arg.screenTimeout,
-    "devices":arg.devices
   }
-  //对比两端配置文件
-  if(JSON.stringify(mode1)!=JSON.stringify(mode2)){
-    //更新cofing.json
-    console.log('update confing.json')
-    store.set(mode2)
-    // 重新建立sockte 通讯
-    win?.webContents.send('getScreenTimeout',store.get('screenTimeout'))
-    win?.webContents.send('getPcName',store.get('machineName'))
-    win?.webContents.send('getConfigData',store.get('clientCode'),store.get('devices'),store.path)
-  }
-  
-  
 })
\ No newline at end of file

--
Gitblit v1.8.0