- 操作系统linux
- 将config.json和matrix.exe放在一个目录下,在该目录下运行sh start.sh
{
"service": {
"port": "12345",
"log_level": 2,
"cert_file": "",
"key_file": ""
},
"mysql": {
"host": "120.55.115.201",
"port": "3600",
"user": "root",
"password": "191400",
"database": "course"
},
"matrix": {
"length": 30,
"width": 20
},
"socket": {
"unity_laddr": "0.0.0.0:12346",
"forward_laddr": "0.0.0.0:12347",
"delimiter": " ",
"max_message": 10000,
"duration": 5000
}
}- service部分
- port指明该http服务的的端口,该端口接受微信小程序发出的http请求
- log_level指的是日志记录的等级,默认是info级别,数字越大,表明日志重要性越高
- cert_file和key_file分别是证书文件名和秘钥文件名。如果需要此程序提供HTTPS服务,那么久需要将域名的证书和秘钥文件放在同目录下;如果只是需要提供HTTP服务,那么将这两个配置项如上置为空字符串即可
- mysql部分:该部分填写存储矩阵用的mysql数据库的连接参数,包括:IP、端口、用户名、密码、数据库
- matrix部分:该部分说明矩阵的大小,文件中为30x20,若微信小程序发送的信息不是30x20,则不会处理请求
- socket部分:
- unity_ladder:表明给unity程序提供监听的t c p连接的端口,文件中表示,该程序会处理本机12346端口的t c p连接请求
- forward_laddr: 做转发的tcp服务器监听的端口
- delimiter:消息分隔符,代表一条完整的消息
- max_message:程序存储矩阵的队列大小
- duration:发送矩阵的延迟,单位毫秒
请求参数与路径:
POST /matrix/resource
请求参数(使用json传送数据)
| 参数 | 类型 | 说明 |
|---|---|---|
| res | 字符串 | 若为forward,则展示下一个矩阵;若为backend,则显示上一个矩阵;否则,传递矩阵信息,矩阵信息在后面说明,若不符合矩阵信息要求,则返回报错 |
矩阵信息:一个字符串,是按行连接二维矩阵的元素,每行之间的元素以空格隔开,换行则以换行符'\n'分隔,如一个二维矩阵
[1 2
3 4]
则矩阵信息为: "12\n34"
目前矩阵为30*20
| 参数 | 类型 | 说明 |
|---|---|---|
| code | 数字 | 成功为0 |
| message | 字符串 | 提示消息 |
| result | 字符串 | 展示的矩阵信息 |
服务端与微信小程序以HTTP进行通信,服务端与客户端以socket进行通信。微信小程序发出指令后后台会将需要展示的矩阵放入一个队列,该队列的大小可以在服务端程序的配置文件中指定。若队列中有元素,则服务端会向已连接到它的所有客户端发送该队列头部的矩阵信息。客户端可以根据该信息控制步进电机的运动,也可以做其他处理。服务端与客户端通信的消息以空格作为边界符,消息是矩阵的命令组成的字符串,以"."分隔。如矩阵为
[0 1 1
1 1 1
0 0 0]
则服务端会给客户端发送"0.1.1.1.1.1.0.0.0 "。若队列中没有元素,则服务端不会向客户端发送消息。
服务端提供一些方法用于控制电机的动作,若要更加完全地控制电机,则可以参考CAN发送文档或者WIFI发送文档进行控制,优先建议使用CAN的方式进行控制。==
POST
json格式
返回参数
| 参数 | 类型 | |
|---|---|---|
| code | int | 0为成功 |
| message | string | |
| data | object |
/matrix/operation/all
请求参数
| 参数 | 类型 | |
|---|---|---|
| action | string | 所有矩阵执行的动作。可选值为:wave,shark,out,in,stop,reset。分别对应波浪运动、鲨鱼效果,向外运动,向内运动,停止运动 |
/matrix/operation/motor\
请求参数
| 参数 | 类型 | |
|---|---|---|
| action | string | 可选值为:out,in,stop,reset。分别对应向外运动,向内运动,停止运动,复位 |
| id | string | 电机编号,1-600 |
/matrix/operation/setSpeed
请求参数
| 参数 | 类型 | |
|---|---|---|
| acc_value | int | 加速过程的加速度,0-1000 |
| dec_value | int | 减速过程的加速度,0-4000 |
| max_value | int | 持续运行的最大速度,0-2000 |
/matrix/operation/setWIFI
请求参数
| 参数 | 类型 | |
|---|---|---|
| id | string | 电机编号,1-600 |
| name | string | wifi名称 |
| password | string | wifi密码 |
该目录下会产生三个日志文件,
- matrix.log 记录客户端与服务端的连接信息 等
- MySQL.log 记录操作MySQL的语句