折腾:
【已解决】用Java代码解析104协议收到的数据
之后,开始去搭建后端,用java的sprint boot。
【已解决】VSCode中搭建Spring Boot的示例程序
目前能想到的后续需要做的事情:
- 支持POST
- 支持操作mysql
所以再去添加post:
【已解决】Spring Boot中添加支持POST方法
不过先去加上日志输出到文件:
【已解决】给Spring Boot的java项目中加上输出日志到文件中
以及访问mysql:
【已解决】spring boot中添加访问操作mysql数据库
再去合并之前
【已解决】用Java代码解析104协议收到的数据
到当前的rest的service:
然后把之前代码合并到现有项目
主要是把文件拷贝过来
然后再去修改:
1 2 | com.iec. com.crifan.xxx. |
即可解决大部分文件的错误。
然后调试后,发现解析结果没问题:
1 2 3 | { "data" : "68 14 E8 B7 00 00 01 87 14 00 05 00 01 00 00 01 01 01 00 00 00 01" } |
解析出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | * APCI应用规约控制信息 * 启动字符[ 1 byte]: 0x68 应用规约数据单元(APDU)长度[ 2 byte]: 20 字节 控制域[ 3 byte - 6 byte]: (I格式控制域标志) 发送序列号: 23540 接受序列号: 0 * ASDU应用服务数据单元 * 类属性标识符[ 7 byte]: 0x01 Single - point information 可变结构限定词[ 8 byte]:可变结构限定词: 0x87 SQ = 1 信息元素地址顺序 信息元素个数: 7 传送原因 = COT[ 9 byte]:[T(test) bit7: 0 未实验][P / N bit6: 0 肯定确认][原因 bit5~bit0: 20 interrogated by general interrogation] 发送人地址 = ORG = Originator Address [ 10 byte]: 0 应用服务数据单元公共地址 = COA = Common Address of ASDU[ 11 byte - 12 byte]: 0005H 信息对象地址: 1 ( 000001H ) 信息元素 1 的信息元素值 SIQ: 0x01 有效 / 当前值 / 未被取代 / 未被闭锁 / 开关合 信息元素 2 的信息元素值 SIQ: 0x01 有效 / 当前值 / 未被取代 / 未被闭锁 / 开关合 信息元素 3 的信息元素值 SIQ: 0x01 有效 / 当前值 / 未被取代 / 未被闭锁 / 开关合 信息元素 4 的信息元素值 SIQ: 0x00 有效 / 当前值 / 未被取代 / 未被闭锁 / 开关分 信息元素 5 的信息元素值 SIQ: 0x00 有效 / 当前值 / 未被取代 / 未被闭锁 / 开关分 信息元素 6 的信息元素值 SIQ: 0x00 有效 / 当前值 / 未被取代 / 未被闭锁 / 开关分 信息元素 7 的信息元素值 SIQ: 0x01 有效 / 当前值 / 未被取代 / 未被闭锁 / 开关合 |
但是代码报错了:
【已解决】spring boot报错:SqlExceptionHelper.java Data truncation Data too long for column at row 1
数据可以保存到mysql中了:

也可以正常返回了:

比如再去测试另外一个数据:

都是可以的。
然后mysql数据库中,也可以看到数据:

再去git push最新代码到git仓库。
接着再去:
【未解决】集成TDEngine到智能电力的Java后台SprintBoot中