111
rk
5 天以前 f27e0eae38502d40a187dedc3710ff4a291b05ed
server/×ÔÐгµmqttЭÒé.md
@@ -1,45 +1,85 @@
# è‡ªè¡Œè½¦ mqtt åè®®æ–‡æ¡£
## sub: device/lock/{siteId}/{lockId}/info {"bikeCode":"1234567890","lockId":"kjflksjlkfsjdlk","siteId": 456,"status":0,"code":"789"}
## sub: device/lock/{siteId}/{lockId}/bike  {"bikeCode":"1234567890","lockId":789,"siteId": 456,"time":"2023-10-13 10:12:90"}
# è‡ªè¡Œè½¦ mqtt åè®®æ–‡æ¡£
## é€šä¿¡è§„范
- æ¯ä¸ªç«™ç‚¹ä¸€ä¸ª mqtt è¿žæŽ¥ï¼ŒclientId ä¸º SITE_站点编号
- æ¯ä¸ªç«™ç‚¹ä¸€ä¸ª mqtt è¿žæŽ¥ï¼ŒclientId ä¸º SITE_站点编号_时间戳
- ä¸€ä¸ªç«™ç‚¹ç”±éƒ¨ç½²åœ¨ä¸Šä½æœºä¸Šçš„软件通过can总线与多个锁通信,并与服务器通过mqtt做消息转发
- siteId + lockId ä¸ºé”çš„唯一索引,在同一站点下,lockId不重复
## sub: device/lock/{id}/info
> **锁信息,在初始化、状态变更时会推送锁的完整状态**
## sub: device/lock/{siteId}/{lockId}/info qos=1
> **锁信息,在站点软件启动初始化、getInfo主题,unlock主题时时会推送锁的完整状态**
- æ•°æ®
```json
{
    "siteId": "1015", // ç«™ç‚¹ç¼–号
    "code": "01", // é”ç¼–号
    "id": "123456789103", // é”å”¯ä¸€id,同主题{id}
    "status": 1, // çŠ¶æ€ï¼Œ0闭合, 1打开,2运行中, 3异常
    "bikeCode": "1234567890" // è‡ªè¡Œè½¦ic卡号,无车为空
    "siteId": "1015", // ç«™ç‚¹ç¼–号,同主题{siteId}
    "lockId": 2, // é”ç¼–号,同主题{lockId}
    "status": 1, // çŠ¶æ€ï¼Œ0闭合, 1打开,2运行中, 3异常, -1自检中
    "bikeCode": "12345678", // è‡ªè¡Œè½¦ic卡号,8位数字,如:10000012,无车为空
    "timestamp": 1234567823423 // æ—¶é—´æˆ³ï¼Œ ms值
}
```
## pub: device/lock/{id}/getInfo
> å®žæ—¶èŽ·å–é”ä¿¡æ¯
## pub: device/lock/{siteId}/{lockId}/getInfo qos=0
> å®žæ—¶èŽ·å–é”ä¿¡æ¯, ç«™ç‚¹åœ¨æ”¶åˆ°æ­¤æ¶ˆæ¯æ—¶ï¼Œå‘送指定获取到锁的实时消息,并发布到info主题
- æ•°æ®
```json
{}
```
## pub: device/lock/{id}/unlock
## pub: device/lock/{siteId}/{lockId}/unlock qos=0
> å¼€é”ï¼ŒæˆåŠŸå¤±è´¥å¯å…³æ³¨info消息推送
- æ•°æ®
```json
{}
```
## sub: device/lock/{id}/bike
## sub: device/lock/{siteId}/{lockId}/bike qos=1
> è¿˜è½¦, è¿˜è½¦æˆåŠŸæ—¶ï¼ŒèŽ·å¾—æ‰€è¿˜è½¦è¾†ic卡号推送
- æ•°æ®
```json
{
    "bikeCode": "1234567890",
    "lockId": 123,
    "siteId": 234,
    "time": "2023-10-13 10:12:90" // ç«™ç‚¹ä¸Šä½æœºæ”¶åˆ°è¿˜è½¦æŒ‡ä»¤çš„æ—¶é—´ï¼Œä»…做参考,请以服务器时间为准
    "siteId": "1015", // ç«™ç‚¹ç¼–号,同主题{siteId}
    "lockId": 2, // é”ç¼–号,同主题{lockId}
    "status": 1, // çŠ¶æ€ï¼Œ0闭合, 1打开,2运行中, 3异常, -1自检中
    "bikeCode": "12345678", // è‡ªè¡Œè½¦ic卡号,8位数字,如:10000012,无车为空
    "timestamp": 1234567823423 // æ—¶é—´æˆ³ï¼Œ ms值,站点上位机收到还车指令的时间,仅做参考,请以服务器时间为准
}
```
```
## sub: device/lock/{siteId}/health qos=0
> ## ç«™ç‚¹å¿ƒè·³ä¸»é¢˜, é—´éš”30s
- æ•°æ®
```json
{
    "timestamp": 1234567823423 // æ—¶é—´æˆ³ï¼Œ ms值
}
```
## sub: device/lock/{siteId}/siteInfo qos=1
> æ–°å¢ž - ç«™ç‚¹ä¿¡æ¯ï¼Œç«™ç‚¹åœ¨è¿žæŽ¥æœåŠ¡å™¨åŽå³æŽ¨é€
- æ•°æ®
```json
{
    "siteId": "1015", // ç«™ç‚¹ç¼–号,同主题{siteId}
    "locks": 1234, // é”æ•°é‡
    "version": "1.0.7", // ç«™ç‚¹è½¯ä»¶ç‰ˆæœ¬å·
    "timestamp": 1234567823423 // æ—¶é—´æˆ³ï¼Œ ms值
}
```
## sub: device/lock/{siteId}/{lockId}/adminCard qos=1
> æ–°å¢ž - ç®¡ç†å‘˜åˆ·å¡è®°å½•上报
- æ•°æ®
```json
{
    "siteId": "1015", // ç«™ç‚¹ç¼–号,同主题{siteId}
    "lockId": 2, // é”ç¼–号,同主题{lockId}
    "cardNo": "1001", // ç®¡ç†å‘˜å¡å·ï¼Œå››ä½æ•°å­—
    "bikeCode": "12345678", // è‡ªè¡Œè½¦ic卡号,8位数字,如:10000012,无车为空
    "timestamp": 1234567823423 // æ—¶é—´æˆ³ï¼Œ ms值
}
```