# 技术报告

## Usage

### Develop Method
1. Use linux to dev web and python
2. Use windows to compile electron window exe

### Use Linux serial port (Not recommend)
1. find out the device
    ```
    dmesg | awk '/tty/ && /USB/ {print "/dev/"$10}'|tail -1
    ```
2. mount it with virtualbox, start the virtual system

## Framework
* 研究内容
* 研究方法
* 技术路线
* 所用到的技术的创新之处

### 研究内容
用电脑远程控制单片机
(利用电脑, 通过无线电渠道，远程控制多组单片机)

### 研究方法
写代码、做实验、看教程、搜资料

### 技术路线
宏观上: Javascript, Python
构架上: Vue.js (Vuex,Material Design) -> Electron -> Flask -> Pyinstaller -> Pyserial -> Pyboard

利用 Python 作为后端服务器(中转服务器), 一方面连接前端控制界面，另一方面通过Serial接口远程控制单片机

### 技术创新
1. 首次将 Web Page, Server, Single_Chip_Controller 连接起来, 实现 ip package 与 UART协议 的互通
2. 控制端不光支持Windows全系列，更可以跨平台使用，包括Linux, Android, IOS，只要有浏览器就能控制单片机
3. 创新自适应UI的界面设计，可以让界面自适应不同分辨率的屏幕
4. 通过利用 hash sha256 加密算法，实现对数据完整性的准确验算，使得数据不会出错，极大地提高了无线传输的可用性
5. 采用 JSON 数据结构 作为 信息传输载体，方便各类编程语言的接入