Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
A
ademco_hb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
captainwong
ademco_hb
Commits
e4c9168c
Commit
e4c9168c
authored
Aug 13, 2024
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update doc
parent
4a3d8d89
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
305 additions
and
258 deletions
+305
-258
README.md
README.md
+2
-7
README.md
docs/README.md
+166
-163
对接说明.md
docs/对接说明.md
+67
-0
gen_event_md.cpp
examples/gen_event_md/gen_event_md.cpp
+70
-88
No files found.
README.md
View file @
e4c9168c
...
@@ -16,12 +16,7 @@ QQ群:`1093730796`
...
@@ -16,12 +16,7 @@ QQ群:`1093730796`
## docs
## docs
[
开发文档
](
docs/README
.md
)
[
对接说明
](
docs/对接说明
.md
)
[
协议文档
](
docs/README.md
)
## 测试及演示工具,已编译的dll等请点击 [releases](https://github.com/captainwong/ademco_hb/releases)下载
## 测试及演示工具,已编译的dll等请点击 [releases](https://github.com/captainwong/ademco_hb/releases)下载
## ChangeLog
*
2022年7月31日 废弃旧版
`C++`
头文件版本,启用纯
`C`
版本。
`C++`
版本可以在
`cpp`
分支查看。
docs/README.md
View file @
e4c9168c
...
@@ -65,154 +65,154 @@
...
@@ -65,154 +65,154 @@
### 主机状态
### 主机状态
|
事件码|含义|en
|
|
事件码 | 含义 | en
|
|
-----|----|--
|
|
------ | -------- | -------------
|
|
3400|离家布防|ARM_AWAY
|
|
3400 | 离家布防 | ARM_AWAY
|
|
1400|撤防|DISARM
|
|
1400 | 撤防 | DISARM
|
|
3456|留守布防|ARM_STAY
|
|
3456 | 留守布防 | ARM_STAY
|
|
1456|留守布防|ARM_STAY_1456
|
|
1456 | 留守布防 | ARM_STAY_1456
|
### 防区报警
### 防区报警
|
事件码|含义|en
|
|
事件码 | 含义 | en
|
|
-----|----|--
|
|
------ | -------- | -----------
|
|
1120|紧急报警|EMERGENCY
|
|
1120 | 紧急报警 | EMERGENCY
|
|
1130|盗警|BURGLAR
|
|
1130 | 盗警 | BURGLAR
|
|
1134|门铃|DOOR_RING
|
|
1134 | 门铃 | DOOR_RING
|
|
1110|火警|FIRE
|
|
1110 | 火警 | FIRE
|
|
1121|胁迫|DURESS
|
|
1121 | 胁迫 | DURESS
|
|
1151|煤气|GAS
|
|
1151 | 煤气 | GAS
|
|
1113|水警|WATER
|
|
1113 | 水警 | WATER
|
|
1137|主机防拆|TAMPER
|
|
1137 | 主机防拆 | TAMPER
|
|
1383|防区防拆|ZONE_TAMPER
|
|
1383 | 防区防拆 | ZONE_TAMPER
|
|
1570|旁路|BYPASS
|
|
1570 | 旁路 | BYPASS
|
### 防区异常
### 防区异常
|
事件码|含义|en
|
|
事件码 | 含义 | en
|
|
-----|----|--
|
|
------ | ------------ | -----------------------
|
|
1301|主机AC掉电|AC_BROKE
|
|
1301 | 主机AC掉电 | AC_BROKEN
|
|
1302|低电|LOW_BATTERY
|
|
1302 | 低电 | LOW_BATTERY
|
|
1311|坏电|BAD_BATTERY
|
|
1311 | 坏电 | BAD_BATTERY
|
|
1387|光扰|SOLAR_DISTURB
|
|
1387 | 光扰 | SOLAR_DISTURB
|
|
1381|失效|DISCONNECT
|
|
1381 | 失效 | DISCONNECT
|
|
1393|失联|LOST
|
|
1393 | 失联 | LOST
|
|
1384|电源故障|BATTERY_EXCEPTION
|
|
1384 | 电源故障 | POWER_EXCEPTION
|
|
1380|其他故障|OTHER_EXCEPTION
|
|
1380 | 其他故障 | OTHER_EXCEPTION
|
|
3301|主机AC复电|AC_RECOVER
|
|
3301 | 主机AC复电 | AC_RECOVER
|
|
3302|低电恢复|LOW_BATTERY_RECOVER
|
|
3302 | 低电恢复 | LOW_BATTERY_RECOVER
|
|
3311|坏电恢复|BAD_BATTERY_RECOVER
|
|
3311 | 坏电恢复 | BAD_BATTERY_RECOVER
|
|
3387|光扰恢复|SOLAR_DISTURB_RECOVER
|
|
3387 | 光扰恢复 | SOLAR_DISTURB_RECOVER
|
|
3381|失效恢复|DISCONNECT_RECOVER
|
|
3381 | 失效恢复 | DISCONNECT_RECOVER
|
|
3393|失联恢复|LOST_RECOVER
|
|
3393 | 失联恢复 | LOST_RECOVER
|
|
3384|电源故障恢复|BATTERY_EXCEPTION_RECOVER
|
|
3384 | 电源故障恢复 | POWER_EXCEPTION_RECOVER
|
|
3380|其他故障恢复|OTHER_EXCEPTION_RECOVER
|
|
3380 | 其他故障恢复 | OTHER_EXCEPTION_RECOVER
|
|
3100|清除异常指示|CLEAR_EXCPTION
|
|
3100 | 清除异常指示 | CLEAR_EXCPTION
|
### *恒博私有事件码*
### *恒博私有事件码*
|
事件码|含义|en
|
|
事件码 | 含义 | en
|
|
-----|----|--
|
|
------ | ---------------------------- | ----------------------------
|
|
1485|485断开|SERIAL_485_DIS
|
|
1485 | 485断开 | SERIAL_485_DIS
|
|
3485|485连接|SERIAL_485_RECOVER
|
|
3485 | 485连接 | SERIAL_485_RECOVER
|
|
1700|链路挂起|CONN_HANGUP
|
|
1700 | 链路挂起 | CONN_HANGUP
|
|
3700|链路恢复|CONN_RECOVER
|
|
3700 | 链路恢复 | CONN_RECOVER
|
|
1701|撤防密码错误|DISARM_PWD_ERR
|
|
1701 | 撤防密码错误 | DISARM_PWD_ERR
|
|
1702|分机探头异常|SUB_MACHINE_SENSOR_EXCEPTION
|
|
1702 | 分机探头异常 | SUB_MACHINE_SENSOR_EXCEPTION
|
|
3702|分机探头恢复|SUB_MACHINE_SENSOR_RECOVER
|
|
3702 | 分机探头恢复 | SUB_MACHINE_SENSOR_RECOVER
|
|
1703|分机电源异常|SUB_MACHINE_POWER_EXCEPTION
|
|
1703 | 分机电源异常 | SUB_MACHINE_POWER_EXCEPTION
|
|
3703|分机电源恢复|SUB_MACHINE_POWER_RECOVER
|
|
3703 | 分机电源恢复 | SUB_MACHINE_POWER_RECOVER
|
|
1704|串口透传|COM_PASSTHROUGH
|
|
1704 | 串口透传 | COM_PASSTHROUGH
|
|
2704|进入设置状态|ENTER_SET_MODE
|
|
2704 | 进入设置状态 | ENTER_SET_MODE
|
|
3704|退出设置状态|EXIT_SET_MODE
|
|
3704 | 退出设置状态 | EXIT_SET_MODE
|
|
1705|查询分机信息|QUERY_SUB_MACHINE
|
|
1705 | 查询分机信息 | QUERY_SUB_MACHINE
|
|
1706|写入主机信息|WRITE_TO_MACHINE
|
|
1706 | 写入主机信息 | WRITE_TO_MACHINE
|
|
1707|主机类型--网络模块|I_AM_NET_MODULE
|
|
1707 | 主机类型--网络模块 | I_AM_NET_MODULE
|
|
1717|主机类型--GPRS主机|I_AM_GPRS
|
|
1717 | 主机类型--GPRS主机 | I_AM_GPRS
|
|
1727|主机类型--液晶主机|I_AM_LCD
|
|
1727 | 主机类型--液晶主机 | I_AM_LCD
|
|
1737|主机类型--网线主机|I_AM_WIRE
|
|
1737 | 主机类型--网线主机 | I_AM_WIRE
|
|
1747|主机类型--WiFi主机(停用)|I_AM_WIFI
|
|
1747 | 主机类型--WiFi主机(停用) | I_AM_WIFI
|
|
1757|主机类型--三区段主机|I_AM_3_SECTION
|
|
1757 | 主机类型--三区段主机 | I_AM_3_SECTION
|
|
1767|主机类型--物联卡主机|I_AM_IOT
|
|
1767 | 主机类型--物联卡主机 | I_AM_IOT
|
|
1777|主机类型--真彩主机|I_AM_TRUE_COLOR
|
|
1777 | 主机类型--真彩主机 | I_AM_TRUE_COLOR
|
|
1787|主机类型--物联卡主机|I_AM_GPRS_IOT
|
|
1787 | 主机类型--物联卡主机 | I_AM_GPRS_IOT
|
|
1797|主机类型--GRPS主机带电话功能|I_AM_GPRS_PHONE
|
|
1797 | 主机类型--GRPS主机带电话功能 | I_AM_GPRS_PHONE
|
|
1807|主机类型--NB报警接收主机|I_AM_NB
|
|
1807 | 主机类型--NB报警接收主机 | I_AM_NB
|
|
1817|主机类型--WiFi主机(新版)|I_AM_WIFI2
|
|
1817 | 主机类型--WiFi主机(新版) | I_AM_WIFI2
|
|
1709|手机用户SOS|PHONE_USER_SOS
|
|
1709 | 手机用户SOS | PHONE_USER_SOS
|
|
1711|手机用户消警|PHONE_USER_CANCLE_ALARM
|
|
1711 | 手机用户消警 | PHONE_USER_CANCLE_ALARM
|
|
1712|主机进入设置状态|ENTER_SETTING_MODE
|
|
1712 | 主机进入设置状态 | ENTER_SETTING_MODE
|
|
3712|主机退出设置状态|EXIT_SETTING_MODE
|
|
3712 | 主机退出设置状态 | EXIT_SETTING_MODE
|
|
1710|主机恢复出厂设置|RESTORE_FACTORY_SETTINGS_710
|
|
1710 | 主机恢复出厂设置 | RESTORE_FACTORY_SETTINGS_710
|
|
1713|主机恢复出厂设置|RESTORE_FACTORY_SETTINGS
|
|
1713 | 主机恢复出厂设置 | RESTORE_FACTORY_SETTINGS
|
|
1756|物联卡|SIM_IS_IOT_CARD
|
|
1756 | 物联卡 | SIM_IS_IOT_CARD
|
|
2756|平台物联卡|SIM_IS_IOT_PLATFORM_CARD
|
|
2756 | 平台物联卡 | SIM_IS_IOT_PLATFORM_CARD
|
|
3756|非物联卡|SIM_IS_NOT_IOT_CARD
|
|
3756 | 非物联卡 | SIM_IS_NOT_IOT_CARD
|
|
1798|索要主机类型|WHAT_IS_YOUR_TYPE
|
|
1798 | 索要主机类型 | WHAT_IS_YOUR_TYPE
|
|
1799|信号强度|SIGNAL_STRENGTH_CHANGED
|
|
1799 | 信号强度 | SIGNAL_STRENGTH_CHANGED
|
|
1944|主机断线|OFFLINE
|
|
1944 | 主机断线 | OFFLINE
|
|
1946|主机上线|ONLINE
|
|
1946 | 主机上线 | ONLINE
|
### *恒博主机类型对照表*
### *恒博主机类型对照表*
*SMS指主机自身是否可以拨打电话、发送短信,不是指通过阿里语音打电话*
*SMS指主机自身是否可以拨打电话、发送短信,不是指通过阿里语音打电话*
|
事件码|主机类型|布防|撤防|半布防|设置|信号强度|防区|有线防区|SMS|内核|网络|型号
|
|
事件码 | 主机类型 | 离家布防 | 撤防 | 留守布防 | 设置 | 信号强度 | 防区 | 有线防区 | SMS | 内核 | 网络 | 型号
|
|
------|-------|----|----|-----|----|-------|----|-------|---|----|---|----
|
|
--------------------------------- | ----------------- | -------- | ---- | -------- | ---- | -------- | ----- | -------- | --- | ---- | ---- | ------------------------------------------------------
|
|
1707 主机类型--网络模块|3 网络模块主机|√|√|√|√| |1~999|1~8| |jjf|qfm|
<ul><li>
G250
</li></ul>
|
|
1707 主机类型--网络模块 | 3 网络模块主机 | √ | √ | √ | √ | | 1~999 | 1~8 | | jack | jack |
<ul><li>
G250
</li></ul>
|
|
1717 主机类型--GPRS主机|4 GPRS主机|√|√| |√|√|1~99| |√|wzq|qfm|
<ul><li>
4040G
</li><li>
5050G
</li><li>
5050G-4G
</li></ul>
|
|
1717 主机类型--GPRS主机 | 4 GPRS主机 | √ | √ | | √ | √ | 1~99 | | √ | wzq | qfm |
<ul><li>
4040G
</li><li>
5050G
</li><li>
5050G-4G
</li></ul>
|
|
1727 主机类型--液晶主机|5 液晶主机|√|√|√|√|√|1~249| |√|jjf|qfm|
<ul><li>
BJQ560
</li><li>
BJQ560B
</li></ul>
|
|
1727 主机类型--液晶主机 | 5 液晶主机 | √ | √ | √ | √ | √ | 1~249 | | √ | jjf | qfm |
<ul><li>
BJQ560
</li><li>
BJQ560B
</li></ul>
|
|
1737 主机类型--网线主机|6 网线主机|√|√| |√| |1~99| | |wzq|qfm|
<ul><li>
4040R
</li><li>
5050R
</li></ul>
|
|
1737 主机类型--网线主机 | 6 网线主机 | √ | √ | | √ | | 1~99 | | | jack | jack |
<ul><li>
4040R
</li><li>
5050R
</li></ul>
|
|
1757 主机类型--三区段主机|8 三区段主机|√|√| |√|√|1~191|61~68|√|jjf|qfm|
<ul><li>
G1000
</li><li>
G1000-4G
</li></ul>
|
|
1757 主机类型--三区段主机 | 8 三区段主机 | √ | √ | | √ | √ | 1~191 | 61~68 | √ | jjf | qfm |
<ul><li>
G1000
</li><li>
G1000-4G
</li></ul>
|
|
1767 主机类型--物联卡主机|9 物联卡主机|√|√| |√|√|1~60| | |jjf|qfm|
<ul><li>
2050-4GW
</li></ul>
|
|
1767 主机类型--物联卡主机 | 9 物联卡主机 | √ | √ | | √ | √ | 1~60 | | | jjf | qfm |
<ul><li>
2050-4GW
</li></ul>
|
|
1777 主机类型--真彩主机|7 真彩主机|√|√| |√|√|1~68|1~8|√|jjf|qfm|
<ul><li>
G1000
</li><li>
G1000-4G
</li></ul>
|
|
1777 主机类型--真彩主机 | 7 真彩主机 | √ | √ | | √ | √ | 1~68 | 1~8 | √ | jjf | qfm |
<ul><li>
G1000
</li><li>
G1000-4G
</li></ul>
|
|
1787 主机类型--物联卡主机|2 简化物联卡主机|√|√| |√|√|1~99| | |wzq|qfm|
<ul><li>
5050G-4GW
</li></ul>
|
|
1787 主机类型--物联卡主机 | 2 简化物联卡主机 | √ | √ | | √ | √ | 1~99 | | | wzq | qfm |
<ul><li>
5050G-4GW
</li></ul>
|
|
1797 主机类型--GRPS主机带电话功能|10 GPRS主机可电话|√|√| |√|√|1~60| |√|jjf|qfm|
<ul><li>
2050
</li></ul>
|
|
1797 主机类型--GRPS主机带电话功能 | 10 GPRS主机可电话 | √ | √ | | √ | √ | 1~60 | | √ | jjf | qfm |
<ul><li>
2050
</li></ul>
|
|
1807 主机类型--NB报警接收主机|11 NB报警接收主机| | | |√|√|1~999| | |||
<ul></ul>
|
|
1807 主机类型--NB报警接收主机 | 11 NB报警接收主机 | | | | √ | √ | 1~999 | | | | |
<ul></ul>
|
|
1817 主机类型--WiFi主机(新版)|12 WiFi主机新版|√|√| |√|√|1~99| | |wzq|qfm|
<ul></ul>
|
|
1817 主机类型--WiFi主机(新版) | 12 WiFi主机新版 | √ | √ | | √ | √ | 1~99 | | | wzq | qfm |
<ul></ul>
|
### *恒博主机型号示例图片*
### *恒博主机型号示例图片*
|
型号|示例图片
|
|
型号 | 示例图片
|
|
---|--------
|
|
--------- | -------------------------------------------------------------------------
|
|
2050|
<img
alt=
"2050"
src=
"./主机类型/smartresize/HB-2050-web.png"
/>
|
|
2050 |
<img
alt=
"2050"
src=
"./主机类型/smartresize/HB-2050-web.png"
/>
|
|
2050-4GW|
<img
alt=
"2050-4GW"
src=
"./主机类型/smartresize/HB-2050-4GW-web.png"
/>
|
|
2050-4GW |
<img
alt=
"2050-4GW"
src=
"./主机类型/smartresize/HB-2050-4GW-web.png"
/>
|
|
4040G|
<img
alt=
"4040G"
src=
"./主机类型/smartresize/HB-4040G-web.png"
/>
|
|
4040G |
<img
alt=
"4040G"
src=
"./主机类型/smartresize/HB-4040G-web.png"
/>
|
|
4040R|
<img
alt=
"4040R"
src=
"./主机类型/smartresize/HB-4040R-web.png"
/>
|
|
4040R |
<img
alt=
"4040R"
src=
"./主机类型/smartresize/HB-4040R-web.png"
/>
|
|
5050G|
<img
alt=
"5050G"
src=
"./主机类型/smartresize/HB-5050G-web.png"
/>
|
|
5050G |
<img
alt=
"5050G"
src=
"./主机类型/smartresize/HB-5050G-web.png"
/>
|
|
5050G-4G|
<img
alt=
"5050G-4G"
src=
"./主机类型/smartresize/HB-5050G-4G-web.png"
/>
|
|
5050G-4G |
<img
alt=
"5050G-4G"
src=
"./主机类型/smartresize/HB-5050G-4G-web.png"
/>
|
|
5050G-4GW|
<img
alt=
"5050G-4GW"
src=
"./主机类型/smartresize/HB-5050G-4GW-web.png"
/>
|
|
5050G-4GW |
<img
alt=
"5050G-4GW"
src=
"./主机类型/smartresize/HB-5050G-4GW-web.png"
/>
|
|
5050R|
<img
alt=
"5050R"
src=
"./主机类型/smartresize/HB-5050R-web.png"
/>
|
|
5050R |
<img
alt=
"5050R"
src=
"./主机类型/smartresize/HB-5050R-web.png"
/>
|
|
BJQ560|
<img
alt=
"BJQ560"
src=
"./主机类型/smartresize/HB-BJQ560-web.png"
/>
|
|
BJQ560 |
<img
alt=
"BJQ560"
src=
"./主机类型/smartresize/HB-BJQ560-web.png"
/>
|
|
BJQ560B|
<img
alt=
"BJQ560B"
src=
"./主机类型/smartresize/HB-BJQ560B-web.png"
/>
|
|
BJQ560B |
<img
alt=
"BJQ560B"
src=
"./主机类型/smartresize/HB-BJQ560B-web.png"
/>
|
|
G1000|
<img
alt=
"G1000"
src=
"./主机类型/smartresize/HB-G1000-web.png"
/>
|
|
G1000 |
<img
alt=
"G1000"
src=
"./主机类型/smartresize/HB-G1000-web.png"
/>
|
|
G1000-4G|
<img
alt=
"G1000-4G"
src=
"./主机类型/smartresize/HB-G1000-4G-web.png"
/>
|
|
G1000-4G |
<img
alt=
"G1000-4G"
src=
"./主机类型/smartresize/HB-G1000-4G-web.png"
/>
|
|
G250|
<img
alt=
"G250"
src=
"./主机类型/smartresize/HB-G250-web.png"
/>
|
|
G250 |
<img
alt=
"G250"
src=
"./主机类型/smartresize/HB-G250-web.png"
/>
|
### *恒博主机类型与支持的防区属性对照表*
### *恒博主机类型与支持的防区属性对照表*
*
防区属性是否支持失联报告
*
防区属性是否支持失联报告
|
|00 匪警全局|01 匪警紧急|02 火警防区|03 胁迫防区|04 燃气防区|05 淹水防区|06 分机|07 遥控器|08 匪警半局|09 屏蔽防区|0A 门铃防区|0F 旁路防区
|
|
| 00 匪警全局 | 01 匪警紧急 | 02 火警防区 | 03 胁迫防区 | 04 燃气防区 | 05 淹水防区 | 06 分机 | 07 遥控器 | 08 匪警半局 | 09 旁路防区 | 0A 门铃防区
|
|
----|----|----|----|----|----|----|----|----|----|----|----|----
|
|
-------- | ----------- | ----------- | ----------- | ----------- | ----------- | ----------- | ------- | --------- | ----------- | ----------- | -----------
|
|
失联支持|√|√| |√| | |√| |√| | |√
|
|
失联支持 | √ | √ | | √ | | | √ | | √ | √ |
|
*
主机类型与支持的防区属性对照表
*
主机类型与支持的防区属性对照表
|
事件码|类型|型号|00|01|02|03|04|05|06|07|08|09|0A|0F
|
|
事件码 | 类型 | 型号 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A
|
|
----|----|----|----|----|----|----|----|----|----|----|----|----|----|----
|
|
------ | ---- | ------------------------------------------------------ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
|
|
1707|3|
<ul><li>
G250
</li></ul>
|√|√|√|√|√|√|√|√|√|√|√|
|
|
1707 | 3 |
<ul><li>
G250
</li></ul>
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √
|
|
1717|4|
<ul><li>
4040G
</li><li>
5050G
</li><li>
5050G-4G
</li></ul>
|√|√|√|√|√|√| |√| | | |
|
|
1717 | 4 |
<ul><li>
4040G
</li><li>
5050G
</li><li>
5050G-4G
</li></ul>
| √ | √ | √ | √ | √ | √ | | √ | | |
|
|
1727|5|
<ul><li>
BJQ560
</li><li>
BJQ560B
</li></ul>
|√|√|√|√|√|√|√|√|√|√|√|√
|
|
1727 | 5 |
<ul><li>
BJQ560
</li><li>
BJQ560B
</li></ul>
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √
|
|
1737|6|
<ul><li>
4040R
</li><li>
5050R
</li></ul>
|√|√|√|√|√|√| |√| | | |
|
|
1737 | 6 |
<ul><li>
4040R
</li><li>
5050R
</li></ul>
| √ | √ | √ | √ | √ | √ | | √ | | |
|
|
1757|8|
<ul><li>
G1000
</li><li>
G1000-4G
</li></ul>
|√|√|√|√|√|√| |√| |√|√|√
|
|
1757 | 8 |
<ul><li>
G1000
</li><li>
G1000-4G
</li></ul>
| √ | √ | √ | √ | √ | √ | | √ | | √ | √
|
|
1767|9|
<ul><li>
2050-4GW
</li></ul>
|√|√|√|√|√|√| |√| |√|√|√
|
|
1767 | 9 |
<ul><li>
2050-4GW
</li></ul>
| √ | √ | √ | √ | √ | √ | | √ | | √ | √
|
|
1777|7|
<ul><li>
G1000
</li><li>
G1000-4G
</li></ul>
|√|√|√|√|√|√| |√| |√|√|√
|
|
1777 | 7 |
<ul><li>
G1000
</li><li>
G1000-4G
</li></ul>
| √ | √ | √ | √ | √ | √ | | √ | | √ | √
|
|
1787|2|
<ul><li>
5050G-4GW
</li></ul>
|√|√|√|√|√|√| |√| | | |
|
|
1787 | 2 |
<ul><li>
5050G-4GW
</li></ul>
| √ | √ | √ | √ | √ | √ | | √ | | |
|
|
1797|10|
<ul><li>
2050
</li></ul>
|√|√|√|√|√|√| |√| | | |
|
|
1797 | 10 |
<ul><li>
2050
</li></ul>
| √ | √ | √ | √ | √ | √ | | √ | | |
|
|
1807|11|
<ul></ul>
|√|√|√|√|√|√| | | | |√|
|
|
1807 | 11 |
<ul></ul>
| √ | √ | √ | √ | √ | √ | | | | | √
|
|
1817|12|
<ul></ul>
|√|√|√|√|√|√| |√| | | |
|
|
1817 | 12 |
<ul></ul>
| √ | √ | √ | √ | √ | √ | | √ | | |
|
## 四、恒博扩展
## 四、恒博扩展
...
@@ -220,12 +220,12 @@
...
@@ -220,12 +220,12 @@
`data`
段
`gg`
值含义:
`data`
段
`gg`
值含义:
|
发送方|接收方|gg值(ascii字符)|含义
|
|
发送方 | 接收方 | gg值(ascii字符) | 含义
|
|
-----|------|--------------|----
|
|
-------- | -------- | --------------- | --------------------------------
|
|
主机| 接警中心 |00| 主机事件
|
|
主机 | 接警中心 | 00 | 主机事件
|
|
主机| 接警中心 |01~03| 三区段主机的状态事件,区段号为gg
|
|
主机 | 接警中心 | 01~03 | 三区段主机的状态事件,区段号为gg
|
|
接警中心| 主机 |00| 对主机操作
|
|
接警中心 | 主机 | 00 | 对主机操作
|
|
接警中心| 主机 |01~03| 对三区段主机操作,区段号为gg
|
|
接警中心 | 主机 | 01~03 | 对三区段主机操作,区段号为gg
|
说明:三区段主机有三个防区段,每个区段有一定数量的防区,区段可以各自布撤防。
说明:三区段主机有三个防区段,每个区段有一定数量的防区,区段可以各自布撤防。
...
@@ -291,51 +291,54 @@
...
@@ -291,51 +291,54 @@
当事件码如下内容且(
`gg`
为
`00`
、或
`gg`
为
`01`
/
`02`
/
`03`
(三区段主机))时,使用
`zone`
标识操作源:
当事件码如下内容且(
`gg`
为
`00`
、或
`gg`
为
`01`
/
`02`
/
`03`
(三区段主机))时,使用
`zone`
标识操作源:
|
事件码| 含义
|
|
事件码 | 含义
|
|
-----|--------
|
|
------ | ------------
|
|
400| 布撤防
|
|
400 | 布撤防
|
|
456| 留守布防
|
|
456 | 留守布防
|
|
120| 紧急报警
|
|
120 | 紧急报警
|
|
121| 胁迫
|
|
121 | 胁迫
|
|
711| 手机用户消警
|
|
711 | 手机用户消警
|
防区号与操作源对照表:
防区号与操作源对照表:
```
c
```
C
/* control source defs
/* control source defs
* 范围 0~255
* 范围 0-255
* 0: 主机
* 0: 主机(布撤防来源目前只有键盘,紧急报警可以是键盘,也可以是遥控器)
* 1~50: 遥控器
* 1-10: 遥控器
* 51~97: 智能家居
* 11-50: 保留
* 51-96: 智能家居
* 97: 定时器自动控制
* 98: 中转接警中心
* 98: 中转接警中心
* 99: 直连接警中心
* 99: 直连接警中心
* 100
~
199: 手机APP,末二位为手机尾号
* 100
-
199: 手机APP,末二位为手机尾号
* 200: web用户,web端包括 网页,H5, 公众号,小程序等
* 200: web用户,web端包括 网页,H5, 公众号,小程序等
* 201
~
255: web分享用户
* 201
-
255: web分享用户
* 特别注意:三区段主机,0 代表主机,1
~
255 都是遥控器
* 特别注意:三区段主机,0 代表主机,1
-
255 都是遥控器
*/
*/
```
```
|zone|name|source|
| zone | name | source |
|----|----|------|
| ---- | -------------------- | ------------------- |
|0|MACHINE|主机|
| 0 | MACHINE | 主机 |
|1|REMOTE|遥控器|
| 1 | REMOTE | 遥控器 |
|50|REMOTE_MAX|遥控器MAX|
| 10 | REMOTE_MAX | 遥控器MAX |
|51|SMART_HOME_ALEXA|Amazon Alexa|
| 51 | SMART_HOME_ALEXA | Amazon Alexa |
|52|SMART_HOME_GOOGLE|Google Home|
| 52 | SMART_HOME_GOOGLE | Google Home |
|54|SMART_HOME_APPLE|Apple Homekit|
| 54 | SMART_HOME_APPLE | Apple Homekit |
|55|SMART_HOME_SAMSUNG|Samsung Smartthings|
| 55 | SMART_HOME_SAMSUNG | Samsung Smartthings |
|56|SMART_HOME_ALI_GENIE|阿里天猫精灵|
| 56 | SMART_HOME_ALI_GENIE | 阿里天猫精灵 |
|57|SMART_HOME_MI_AI|小米小爱同学|
| 57 | SMART_HOME_MI_AI | 小米小爱同学 |
|58|SMART_HOME_BAIDU|百度小度|
| 58 | SMART_HOME_BAIDU | 百度小度 |
|97|SMART_HOME_MAX|智能家居MAX|
| 96 | SMART_HOME_MAX | 智能家居MAX |
|98|CENTER_TRANSMIT|中转接警中心|
| 97 | TIMER | 定时器 |
|99|CENTER_DIRECT|直连接警中心|
| 98 | CENTER_TRANSMIT | 中转接警中心 |
|100|PHONE_APP|手机APP|
| 99 | CENTER_DIRECT | 直连接警中心 |
|199|PHONE_APP_MAX|手机APP_MAX|
| 100 | PHONE_APP | 手机APP |
|200|OWNER|web用户|
| 199 | PHONE_APP_MAX | 手机APP_MAX |
|201|SHAREE|web分享用户|
| 200 | OWNER | web用户 |
|255|SHAREE_MAX|web分享用户MAX|
| 201 | SHAREE | web分享用户 |
| 255 | SHAREE_MAX | web分享用户MAX |
### 示例
### 示例
...
...
docs/对接说明.md
0 → 100644
View file @
e4c9168c
对接说明
===============
# 0. 简介
目前有两种对接方式,即
`TCP/HTTP`
对接,前者需要自行开发
`TCP SERVER`
,后者需要自行开发
`HTTP SERVER`
,目前前者比较复杂但既可以接收主机事件报告又可以控制主机,后者更简单一点,不过缺点是仅能接收主机事件报告无法控制主机,有需要的朋友可以提需求,我找时间更新
`httprelay`
让它可以逆向控制主机.
# 1. 通过TCP协议对接
目前所有主机均为免配置即可上网,可以用APP配置网络参数,将直连接警中心的域名/端口或
`IP`
/端口配置为你的服务器地址,
即可接收来自主机的
`TCP`
连接传输的事件报告,可以通过
`TCP`
对主机进行控制,协议看
[
README.md
](
./README.md
)
**需要自行开发`TCP SERVER`**
## 1.1 对 `C/C++` 熟悉的同学
参考
`examples/server_demo`
,源码在手,天下你有
## 1.2 其他编程语言
作者对其他语言不熟悉,所以通过
`swig`
生成了其他语言可以使用的库
-
对
`Java`
熟悉的同学,参考
`swig/JavaDemo.java`
-
对
`C#`
熟悉的同学,参考
`swig/CSharpDemo.cs`
-
对
`javascript`
熟悉的同学,参考
`swig/nodejs-demo.js`
有其他语言对接的需要,可以提
`issue`
或在群里发言.
# 2. 通过HTTP协议对接
## 2.1 说明
`examples/httprelay`
是
`C`
编写的简易版
`TCP`
服务器与
`HTTP`
转发器,可以用来接收主机
`TCP`
连接,并转发主机事件到指定的
`URI`
,协议看
[
README.md
](
./README.md
)
中的
`data`
段,参数是
`acct/ademco_event/zone/gg`
,
`acct`
用来区分是哪个主机,
`ademco_event/zone/gg`
用来判断主机上报了什么事件,所以重点看
`事件码含义`
.
## 2.2 网络环境需求
`httprelay`
须运行在能接收主机
`TCP`
连接的环境:
-
插
`SIM`
卡的主机,需要将
`httprelay`
运行在公网环境,否则主机无法通过
`TCP`
连接到服务器
-
网线主机,工程主机+网络模块,
`WiFi`
主机等可以运行在内网环境的主机,可以将
`httprelay`
运行在该主机可以访问的网段,前提是先在公网环境下通过
`APP`
配置好直连接警中心信息、配对好探测器等.
## 2.3 启动 `httprelay` 示例
```
bash
./httprelay 12345 http://your-http-server.com:8080/ademco
```
将监听来自端口
`12345`
的
`TCP`
连接,并在收到事件报告后转发至
`http://your-http-server.com:8080/ademco`
## 2.4 事件转发示例
### 2.4.1 示例1
```
POST http://your-http-server.com:8080/ademco?acct=861234567890&ademco_event=3400&zone=0&gg=0
```
含义是主机账号为
`861234567890`
的主机上报了
`3400 布防`
事件
### 2.4.2 示例2
```
POST http://your-http-server.com:8080/ademco?acct=861234567891&ademco_event=1130&zone=80&gg=0
```
含义是主机账号为
`861234567890`
的主机上报了
`80防区触发了1130 盗警`
事件
examples/gen_event_md/gen_event_md.cpp
View file @
e4c9168c
...
@@ -64,83 +64,81 @@ hb_zone_property_t allZoneProperties[] = {
...
@@ -64,83 +64,81 @@ hb_zone_property_t allZoneProperties[] = {
#undef XX
#undef XX
};
};
void
printEvents
(
const
ademco_event_t
*
events
,
size_t
len
)
void
printEvents
(
const
ademco_event_t
*
events
,
size_t
len
)
{
{
printf
(
"|事件码|含义|en|
\n
|-----|----|--|
\n
"
);
printf
(
"|事件码|含义|en|
\n
|-----|----|--|
\n
"
);
for
(
size_t
i
=
0
;
i
<
len
;
i
++
)
{
for
(
size_t
i
=
0
;
i
<
len
;
i
++
)
{
auto
e
=
events
[
i
];
auto
e
=
events
[
i
];
printf
(
"|%04d|%s|%s|
\n
"
,
e
,
printf
(
"|%04d|%s|%s|
\n
"
,
e
,
ademco_event_to_string_chinese
(
e
),
ademco_event_to_string_chinese
(
e
),
ademco_event_to_string
(
e
));
ademco_event_to_string
(
e
));
}
}
printf
(
"
\n
"
);
printf
(
"
\n
"
);
}
}
const
char
*
get_core_author
(
hb_machine_type_t
t
)
const
char
*
get_core_author
(
hb_machine_type_t
t
)
{
{
switch
(
t
)
{
switch
(
t
)
{
case
HMT_WIFI
:
case
HMT_GPRS
:
case
HMT_GPRS_IOT
:
case
HMT_WIFI
:
case
HMT_GPRS
:
case
HMT_GPRS_IOT
:
case
HMT_WIRED
:
case
HMT_WIFI2
:
case
HMT_WIFI2
:
return
"wzq"
;
return
"wzq"
;
case
HMT_LCD
:
case
HMT_NETMOD
:
case
HMT_TRUE_COLOR
:
case
HMT_LCD
:
case
HMT_THREE_SECTION
:
case
HMT_TRUE_COLOR
:
case
HMT_IOT
:
case
HMT_THREE_SECTION
:
case
HMT_GPRS_PHONE
:
case
HMT_IOT
:
return
"jjf"
;
case
HMT_GPRS_PHONE
:
return
"jjf"
;
case
HMT_NETMOD
:
case
HMT_WIRED
:
return
"jack"
;
}
}
return
""
;
return
""
;
}
}
const
char
*
get_net_author
(
hb_machine_type_t
t
)
const
char
*
get_net_author
(
hb_machine_type_t
t
)
{
{
switch
(
t
)
{
switch
(
t
)
{
case
HMT_WIFI
:
case
HMT_WIFI
:
case
HMT_WIRED
:
case
HMT_GPRS_IOT
:
case
HMT_NETMOD
:
case
HMT_GPRS
:
case
HMT_GPRS_IOT
:
case
HMT_LCD
:
case
HMT_GPRS
:
case
HMT_TRUE_COLOR
:
case
HMT_LCD
:
case
HMT_THREE_SECTION
:
case
HMT_TRUE_COLOR
:
case
HMT_IOT
:
case
HMT_THREE_SECTION
:
case
HMT_GPRS_PHONE
:
case
HMT_IOT
:
case
HMT_WIFI2
:
case
HMT_GPRS_PHONE
:
return
"qfm"
;
case
HMT_WIFI2
:
return
"qfm"
;
case
HMT_WIRED
:
case
HMT_NETMOD
:
return
"jack"
;
}
}
return
""
;
return
""
;
}
}
std
::
vector
<
std
::
string
>
get_machine_brands
(
hb_machine_type_t
t
)
std
::
vector
<
std
::
string
>
get_machine_brands
(
hb_machine_type_t
t
)
{
{
switch
(
t
)
{
switch
(
t
)
{
case
HMT_WIFI
:
case
HMT_WIFI
:
case
HMT_CAMERA
:
return
{};
case
HMT_CAMERA
:
return
{};
case
HMT_GPRS_IOT
:
return
{
"5050G-4GW"
,
};
case
HMT_GPRS_IOT
:
return
{
"5050G-4GW"
,
};
case
HMT_NETMOD
:
return
{
"G250"
};
case
HMT_NETMOD
:
return
{
"G250"
};
case
HMT_GPRS
:
return
{
"4040G"
,
"5050G"
,
"5050G-4G"
,
};
case
HMT_GPRS
:
return
{
"4040G"
,
"5050G"
,
"5050G-4G"
,
};
case
HMT_LCD
:
return
{
"BJQ560"
,
"BJQ560B"
};
case
HMT_LCD
:
return
{
"BJQ560"
,
"BJQ560B"
};
case
HMT_WIRED
:
return
{
"4040R"
,
"5050R"
};
case
HMT_WIRED
:
return
{
"4040R"
,
"5050R"
};
case
HMT_TRUE_COLOR
:
return
{
"G1000"
,
"G1000-4G"
};
case
HMT_TRUE_COLOR
:
return
{
"G1000"
,
"G1000-4G"
};
case
HMT_THREE_SECTION
:
return
{
"G1000"
,
"G1000-4G"
};
case
HMT_THREE_SECTION
:
return
{
"G1000"
,
"G1000-4G"
};
case
HMT_IOT
:
return
{
"2050-4GW"
};
case
HMT_IOT
:
return
{
"2050-4GW"
};
case
HMT_GPRS_PHONE
:
return
{
"2050"
};
case
HMT_GPRS_PHONE
:
return
{
"2050"
};
//case hb::common::Nb: return { "" };
default
:
return
{};
default
:
return
{};
break
;
break
;
}
}
}
}
std
::
string
brand_to_path
(
const
std
::
string
&
brand
)
std
::
string
brand_to_path
(
const
std
::
string
&
brand
)
{
{
std
::
vector
<
std
::
string
>
exts
=
{
"png"
,
"jpg"
};
std
::
vector
<
std
::
string
>
exts
=
{
"png"
,
"jpg"
};
std
::
string
path
=
jlib
::
win32
::
utf16_to_mbcs
(
L"..
\\
..
\\
docs
\\
主机类型
\\
smartresize
\\
HB-"
)
+
brand
;
std
::
string
path
=
jlib
::
win32
::
utf16_to_mbcs
(
L"..
\\
..
\\
docs
\\
主机类型
\\
smartresize
\\
HB-"
)
+
brand
;
for
(
auto
ext
:
exts
)
{
for
(
auto
ext
:
exts
)
{
...
@@ -151,21 +149,18 @@ std::string brand_to_path(const std::string& brand)
...
@@ -151,21 +149,18 @@ std::string brand_to_path(const std::string& brand)
return
{};
return
{};
}
}
void
print_machine_brands
(
hb_machine_type_t
t
)
void
print_machine_brands
(
hb_machine_type_t
t
)
{
{
printf
(
"|<ul>"
);
printf
(
"|<ul>"
);
for
(
auto
brand
:
get_machine_brands
(
t
))
{
for
(
auto
brand
:
get_machine_brands
(
t
))
{
auto
path
=
brand_to_path
(
brand
);
auto
path
=
brand_to_path
(
brand
);
if
(
!
path
.
empty
())
{
if
(
!
path
.
empty
())
{
printf
(
jlib
::
win32
::
utf16_to_mbcs
(
LR"(<li>%s</li>)"
).
data
(),
brand
.
data
());
// , brand.data(), path.data());
printf
(
jlib
::
win32
::
utf16_to_mbcs
(
LR"(<li>%s</li>)"
).
data
(),
brand
.
data
());
}
}
}
}
printf
(
"</ul>"
);
printf
(
"</ul>"
);
}
}
void
print_machineTypes
()
void
print_machineTypes
()
{
{
printf
(
"### *恒博主机类型对照表*
\n\n
"
);
printf
(
"### *恒博主机类型对照表*
\n\n
"
);
printf
(
"*SMS指主机自身是否可以拨打电话、发送短信,不是指通过阿里语音打电话*
\n
"
);
printf
(
"*SMS指主机自身是否可以拨打电话、发送短信,不是指通过阿里语音打电话*
\n
"
);
...
@@ -174,9 +169,9 @@ void print_machineTypes()
...
@@ -174,9 +169,9 @@ void print_machineTypes()
"|------|-------|----|----|-----|----|-------|----|-------|---|----|---|----|
\n
"
);
"|------|-------|----|----|-----|----|-------|----|-------|---|----|---|----|
\n
"
);
for
(
auto
e
:
allEvents
)
{
for
(
auto
e
:
allEvents
)
{
if
(
ademco_is_machine_type_event
(
e
))
{
if
(
ademco_is_machine_type_event
(
e
))
{
auto
t
=
hb_machine_type_from_ademco_event
(
e
);
auto
t
=
hb_machine_type_from_ademco_event
(
e
);
if
(
!
hb_is_machine_on_sale
(
t
))
continue
;
if
(
!
hb_is_machine_on_sale
(
t
))
continue
;
printf
(
"|%04d %s"
,
(
int
)
e
,
ademco_event_to_string_chinese
(
e
));
printf
(
"|%04d %s"
,
(
int
)
e
,
ademco_event_to_string_chinese
(
e
));
printf
(
"|%d %s"
,
(
int
)
t
,
hb_machine_type_to_string_chinese
(
t
));
printf
(
"|%d %s"
,
(
int
)
t
,
hb_machine_type_to_string_chinese
(
t
));
...
@@ -198,11 +193,9 @@ void print_machineTypes()
...
@@ -198,11 +193,9 @@ void print_machineTypes()
printf
(
"|
\n
"
);
printf
(
"|
\n
"
);
}
}
}
}
}
}
void
print_imgs
()
void
print_imgs
()
{
{
printf
(
"
\n\n
### *恒博主机型号示例图片*
\n\n
"
);
printf
(
"
\n\n
### *恒博主机型号示例图片*
\n\n
"
);
printf
(
"|型号|示例图片|
\n
"
printf
(
"|型号|示例图片|
\n
"
...
@@ -236,20 +229,13 @@ bool zprop_is_contain(hb_zone_property_t* props, int count, hb_zone_property_t p
...
@@ -236,20 +229,13 @@ bool zprop_is_contain(hb_zone_property_t* props, int count, hb_zone_property_t p
return
false
;
return
false
;
}
}
void
print_available_zone_props
()
void
print_available_zone_props
()
{
{
printf
(
"### *恒博主机类型与支持的防区属性对照表*
\n\n
"
);
printf
(
"### *恒博主机类型与支持的防区属性对照表*
\n\n
"
);
//auto all_props = getAvailableZoneProperties();
auto
print_prop
=
[](
hb_zone_property_t
zp
)
{
auto
print_prop
=
[](
hb_zone_property_t
zp
)
{
printf
(
"%02X %s"
,
zp
,
hb_zone_property_to_string_chinese
(
zp
));
printf
(
"%02X %s"
,
zp
,
hb_zone_property_to_string_chinese
(
zp
));
};
};
printf
(
"* 防区属性是否支持失联报告
\n\n
"
);
printf
(
"* 防区属性是否支持失联报告
\n\n
"
);
printf
(
"|"
);
printf
(
"|"
);
for
(
auto
zp
:
allZoneProperties
)
{
for
(
auto
zp
:
allZoneProperties
)
{
...
@@ -269,7 +255,6 @@ void print_available_zone_props()
...
@@ -269,7 +255,6 @@ void print_available_zone_props()
}
}
printf
(
"|
\n\n
"
);
printf
(
"|
\n\n
"
);
printf
(
"* 主机类型与支持的防区属性对照表
\n\n
"
);
printf
(
"* 主机类型与支持的防区属性对照表
\n\n
"
);
printf
(
"|事件码|类型|型号"
);
printf
(
"|事件码|类型|型号"
);
for
(
auto
zp
:
allZoneProperties
)
{
for
(
auto
zp
:
allZoneProperties
)
{
...
@@ -299,13 +284,9 @@ void print_available_zone_props()
...
@@ -299,13 +284,9 @@ void print_available_zone_props()
printf
(
"|
\n
"
);
printf
(
"|
\n
"
);
}
}
}
}
}
}
void
print_g250_alarm_codes
()
{
void
print_g250_alarm_codes
()
{
//printf("# 工程主机串口通信协议\n\n");
//printf("# 工程主机串口通信协议\n\n");
//printf("9600, N, 8, 1\n\n");
//printf("9600, N, 8, 1\n\n");
//printf("SUM = DATA(N) = DATA(0) + DATA(1) + ... + DATA(N-1)\n\n");
//printf("SUM = DATA(N) = DATA(0) + DATA(1) + ... + DATA(N-1)\n\n");
...
@@ -375,16 +356,18 @@ void gen_sources() {
...
@@ -375,16 +356,18 @@ void gen_sources() {
const
char
*
comment
=
R"(
const
char
*
comment
=
R"(
```c
```c
/* control source defs
/* control source defs
* 范围 0~255
* 范围 0-255
* 0: 主机
* 0: 主机(布撤防来源目前只有键盘,紧急报警可以是键盘,也可以是遥控器)
* 1~50: 遥控器
* 1-10: 遥控器
* 51~97: 智能家居
* 11-50: 保留
* 51-96: 智能家居
* 97: 定时器自动控制
* 98: 中转接警中心
* 98: 中转接警中心
* 99: 直连接警中心
* 99: 直连接警中心
* 100
~
199: 手机APP,末二位为手机尾号
* 100
-
199: 手机APP,末二位为手机尾号
* 200: web用户,web端包括 网页,H5, 公众号,小程序等
* 200: web用户,web端包括 网页,H5, 公众号,小程序等
* 201
~
255: web分享用户
* 201
-
255: web分享用户
* 特别注意:三区段主机,0 代表主机,1
~
255 都是遥控器
* 特别注意:三区段主机,0 代表主机,1
-
255 都是遥控器
*/
*/
```
```
)"
;
)"
;
...
@@ -397,8 +380,7 @@ void gen_sources() {
...
@@ -397,8 +380,7 @@ void gen_sources() {
#undef XX
#undef XX
}
}
int
main
()
int
main
()
{
{
#define GEN_EVENTS 1
#define GEN_EVENTS 1
#define GEN_G250_CODES 2
#define GEN_G250_CODES 2
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment