zhaochongyi
2024-08-26 e0301d12be2ba6c04613f23c24734c48a30caad8
修改初始化
6个文件已修改
2个文件已添加
129 ■■■■ 已修改文件
README.md 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
electron/config/config.default.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
electron/controller/icrf.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
electron/controller/port.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
electron/utils/websocket.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
frontend/components.d.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
frontend/src/App.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
frontend/src/views/communication/index.vue 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
README.md
@@ -1 +1,4 @@
智能IC卡读写桌面程序
智能IC卡读写桌面程序
npm config set registry https://registry.npmmirror.com
electron/config/config.default.js
@@ -113,9 +113,12 @@
   * 主进程
   */     
  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">