搭建.netcore框架,仓储层使用dapper,集成rabbitmq和redis。使用mysql数据库。创建一个简单的表格,实现增删改查。
整体逻辑:
使用HTTP请求来测试增删改查操作。例如,使用GET请求获取/api/MyTable来获取所有记录,使用GET请求获取/api/MyTable/{id}来获取特定ID的记录,使用POST请求发送JSON数据到/api/MyTable来创建新记录,使用PUT请求更新记录,使用DELETE请求删除记录。
同时,每当插入、更新或删除记录时,会将消息发送到RabbitMQ,并将相关信息存储到Redis缓存中。
步骤
- 确保环境已安装.NET Core SDK
- 选择创建项目的文件路径,打开cmd命令提示符或powershell,执行命令dotnet new webapi -n demo
- cd demo
dotnet add package Dapper
dotnet add package RabbitMQ.Client
dotnet add package StackExchange.Redis
dotnet add package MySql.Data
- 配置appsettings.json文件,Mysql数据库连接,RabbitMQ和Redis:在appsettings.json文件中,添加以下内容来配置RabbitMQ和Redis连接
- 创建一个名为MyTable.cs的类
- 创建一个名为MyTableRepository.cs的仓储类,用于处理数据库操作
- 创建一个名为MyTableController.cs的控制器类,用于处理API端点
- 在Programs.cs中注册MyTableRepository、RabbitMQ连接和Redis数据库连接作为服务
- 以下为某个电表的通信协议:
3.2.10.DL/T645 -2007通讯抄表应用(通讯协议)
本电能表能通过其RS485接口实现远距离抄录表内电能等数据。并能通过其红外通讯接口用掌上电脑实现近距离抄录表内电能数据。编码格式、校验和数据传输方式符合DL/T645 -2007标准要求。通讯波特率出厂默认为1200bps.(1200bps,2400bps、4800bps、9600bps可选)。
DL/T645 -2007通讯协议描述:
- 数据格式:
帧起始符 表地址 帧起始符 控制码 长度 数据 校验码 结束符
68H + A0A1A2A3A4A5 +68H +C + L +DATA +CS校验码 +16H
2、寄存器类型
本表使用了两种类型的控制字。
第一类是读数据寄存器。
第二类是写数据寄存器。
3、数据格式
默认为BCD码,其中电量抄读支持4字节。
4、寄存器列表
数据寄存器地址 | 寄存器说明 | ||||
D3D2 | D1D0 | 描述 | 单位 | 数据长度 | 格式/模式 |
0000 | 0000 | 总用电量 | 千瓦时 | 4 | 只读 |
0000 | 0100 | 当前电量 | 千瓦时 | 4 | 只读 |
0203 | 0004 | 显示周期 | 1 | 读/写 | |
0303 | 0004 | 显示位 | 1 | 读/写 |
5.参数寄存器列表
参数寄存器地址 | 寄存器说明 | ||||
HI字节 | LO字节 | 描述 | 单位 | 数据长度 | 格式/模式 |
0104 | 0004 | 通讯地址 | 1 | 读/写 | |
0204 | 0004 | 表地址 | (表号1-255) | 1 | 读/写 |
0904 | 0004 | 脉冲常数 | imp | 2 | 读 |
6、举例说明
1)对新表设表地址的写操作(注意:对于新表,表号原地址为0,有些表需要短接跳线才能更改表地址。)
下发数据(HEX):68 AA AA AA AA AA AA 68 15 06 56 34 33 33 33 33 3D 16(将新表地址设为123)
返回:68 23 01 00 00 00 00 68 95 00 89 16
2)下发数据(HEX):FE FE FE 68 99 99 99 99 99 99 68 11 04 33 33 34 33 48 16读取表电量:
返回:FE 68 01 00 00 00 00 00 68 91 08 33 33 34 33 39 33 33 33 09 16