README.md | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
electron/config/config.default.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
electron/controller/icrf.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
electron/controller/port.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
electron/utils/websocket.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
frontend/components.d.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
frontend/src/App.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
frontend/src/views/communication/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
README.md
@@ -1 +1,4 @@ 智能IC卡读写桌面程序 npm config set registry https://registry.npmmirror.com electron/config/config.default.js
@@ -113,10 +113,13 @@ * 主进程 */ config.mainServer = { protocol: 'file://', indexPath: '/public/dist/index.html', }; /** * 硬件加速 */ electron/controller/icrf.js
New file @@ -0,0 +1,33 @@ const {Controller} = require("ee-core"); const Ps = require("ee-core/ps"); const koffi = require('koffi'); const path = require("path"); class IcrfController extends Controller{ hcicrf =null; constructor(ctx) { super(ctx); const dllPath = path.join(Ps.getExtraResourcesDir(),'dll','hc_icrf32.dll'); this.hcicrf =koffi.load(dllPath); } async hc_init(params){ const hc_init = this.hcicrf.func('int __stdcall hc_init(short port, uint32_t baud)'); let hcInit = hc_init(2, 115200); console.log(hcInit); if (hcInit <=0){ // let errMsg = this.getErrMsg(hcInit); //console.log(errMsg) } return hcInit; } getErrMsg(st){ let getErrMsg = this.hcicrf.func("int getErrMsg(short st,short lg, char errMsg)"); let errMsg = getErrMsg(st, 0, 1024); console.log(errMsg) return errMsg; } } IcrfController.toString = ()=> '[class IcrfController]'; module.exports =IcrfController; electron/controller/port.js
@@ -1,21 +1,19 @@ import { Controller } from "ee-core"; import { SerialPort } from "serialport"; const { Controller } = require("ee-core"); const { SerialPort } = require("serialport"); const Services = require('ee-core/services') class Port extends Controller{ class PortController extends Controller{ constructor(ctx){ super(ctx) } async initPort(bool){ console.log(bool) if(bool){ SerialPort.list().then((ports)=>{ setTimeout(()=>{ }) }) return SerialPort.list(); } } } PortController.toString = () => '[class PortController]'; module.exports = PortController; electron/utils/websocket.js
New file @@ -0,0 +1,5 @@ class WebsocketUtil { constructor() { } } frontend/components.d.ts
@@ -9,6 +9,7 @@ export interface GlobalComponents { AButton: typeof import('ant-design-vue/es')['Button'] ACard: typeof import('ant-design-vue/es')['Card'] ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] AInput: typeof import('ant-design-vue/es')['Input'] ALayout: typeof import('ant-design-vue/es')['Layout'] ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent'] frontend/src/App.vue
@@ -3,14 +3,12 @@ </template> <script> import {ipc} from '@/utils/ipcRenderer' export default { name: 'App', setup() { document.getElementById('loadingPage').remove(); ipc.invoke('controller.port.initPort',1).then(res=>{ }) } } </script> frontend/src/views/communication/index.vue
@@ -1,13 +1,51 @@ <script setup> import {ipc} from '@/utils/ipcRenderer' import {ref} from "vue"; // 连接模式 const mode = ref(2); // 设备编号 const deviceId = ref(1); // 串口地址 const com = ref(); // 波特率 const serialBaud = ref(115200); const serialBaudList = ref([ 9600,19200,38400,57600,115200 ]) const data = ref( [ ]); //com列表 const comList = ref([]); const isLJ = ref(false) const initListPort = () =>{ ipc.invoke('controller.port.initPort',1).then(res=>{ console.log(res) comList.value = res; if (comList.value.length > 0){ com.value = 0; } }) } /** * 连接设备 */ const setLocalICRF = () => { ipc.invoke('controller.icrf.hc_init',{port:com.value,baud:serialBaud.value}).then(res=>{ console.log(res) }); } /** * 断开设备 */ const disconnectLocalICRF =()=>{ } initListPort(); </script> <template> @@ -23,35 +61,31 @@ </Section> <Section title="设备编号"> <a-input v-model:value="deviceId" placeholder="请输入" /> <a-input :disabled="mode !== 1" v-model:value="deviceId" placeholder="请输入" /> </Section> <Section title="串口号"> <a-select <a-select :disabled="mode !== 2" ref="select" v-model:value="com" style="width: 100%;" @change="handleChange" > <a-select-option value="jack">COM1</a-select-option> <a-select-option value="lucy">COM2</a-select-option> <a-select-option :value="index" v-for="(item,index) in comList">{{ item.path }}</a-select-option> </a-select> </Section> <Section title="波特率"> <a-select <a-select :disabled="mode !== 2" ref="select" v-model:value="com" v-model:value="serialBaud" style="width: 100%;" @change="handleChange" > <a-select-option value="jack">COM1</a-select-option> <a-select-option value="lucy">COM2</a-select-option> <a-select-option :value="item" v-for="(item,index) in serialBaudList" :key="index">{{ item }}</a-select-option> </a-select> </Section> <div style="margin-top: 20px;text-align: right;"> <a-button style="margin-right: 20px;width: 150px">连接设备</a-button> <a-button style="width: 150px">断开连接</a-button> <a-button style="margin-right: 20px;width: 150px" :disabled="isLJ" @click="setLocalICRF">连接设备</a-button> <a-button style="width: 150px" :disabled="!isLJ" @click="disconnectLocalICRF">断开连接</a-button> </div> </div> <div class="flex-1 box-right">