Electron application boilerplate based on Vue.
计划采用3层实现,大体结构为MVVC设计逻辑:
- View Model:本项目中为驱动层,负责实现和键盘的数据传输和接受。驱动层可以支持不同的协议,目前拟支持RAW HID、Nordic Uart Service。
- View: 本项目中为所有的UI页面,负责和用户交互,收集反馈,并对接受到的来自控制器的数据进行展示。
- Controller: 本项目中为数据逻辑层,负责解包、封装、分发来自驱动层的数据和UI的数据。
驱动层主要负责对接各类硬件协议,不同的数据传输协议分别需要实现3个函数,分别是:
data_driver_receive(p_data, data_len)
, 用来接受数据,入参为数据指针,数据长度data_driver_send(p_data, data_len)
,用来发送数据,入参为数据指针,数据长度data_driver_error_handler(err_code)
,数据接受或者发送出错时的处理函数,入参为错误代码
UI层主要展示功能页,主要有以下几个功能页:
- 键盘配置页(支持配列功能等配置的导入和本地持久保存,远程库读取等功能,暂定)
- 按键修改页(可以支持自定义按键的映射和绑定,并保存到本地配置文件中)
- 宏录制页(可以添加延时)
- 灯光控制页(灯光支持单点控制)
- 键盘测试页
- 工具页(包括固件升级,bug提交等,暂定)
控制器功能比较繁琐,主要负责连通UI和驱动,主要要完成以下几个服务函数:
- 布局解析和发送
- 按键修改值解析和发送
- 宏按键修改和发送
- 灯光状态和值的修改和发送
- 键盘状态显示(暂定)
- main用来进行版本发布,每月底接受一次来自dev的合并
- dev用来进行功能验证,随时接受来自其他dev分支的合并
- dev_{:username}为个人开发分支
- dev_{:username}_{:feature}为个人新特征开发分支
# install dependencies
yarn install
# serve with hot reload at localhost:9080
yarn run dev
# build electron application for production
yarn run build
# run unit & end-to-end tests
yarn test
# lint all JS/Vue component files in `src/`
yarn run lint
#add a new module to project
yarn add module-name
- dist
- src
- main
- model
keycode.js
: 记录了所有的按键码
- renderer
- controller
kle-parse.js
: KLEjson解析用来解析具体的电路行列布局和键位形状
This project was generated with electron-vue@8d4ed60 using vue-cli. Documentation about the original structure can be found here.