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
1dedea13
Commit
1dedea13
authored
Apr 19, 2024
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.5.0
parent
84638c06
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
143 additions
and
119 deletions
+143
-119
CHANGELOG.md
CHANGELOG.md
+12
-3
ademco.c
ademco.c
+46
-45
ademco.h
ademco.h
+47
-33
ademco_version.h
ademco_version.h
+1
-1
gen_event_md.cpp
examples/gen_event_md/gen_event_md.cpp
+3
-2
server_demo.cpp
examples/server_demo/server_demo.cpp
+1
-1
hb_core.c
hb_core.c
+2
-2
hb_core.h
hb_core.h
+21
-22
CSharpDemo.cs
swig/CSharpDemo.cs
+4
-4
JavaDemo.java
swig/JavaDemo.java
+4
-4
nodejs-demo.js
swig/nodejs-demo.js
+2
-2
No files found.
CHANGELOG.md
View file @
1dedea13
# Ademco Change Log
## 2.5.0 2024-4-19 18:07:08
-
`ARM`
to
`ARM_AWAY`
-
`HALF_ARM`
to
`ARM_STAY`
-
`resume`
to
`recover`
-
add several recover events
-
fix some typo
## 2.4.0 2024-4-18 04:28:43
-
split some features from
`hb_com`
to
`hb_core`
...
...
@@ -44,7 +53,7 @@
## 2.1.3
-
fix
`
hb_com_resp_a2_p1
_t`
typo
-
fix
`
uint8
_t`
typo
## 2.1.2
...
...
@@ -64,7 +73,7 @@
## 2.0.0
-
add
`hb_com_
resp_ad_iter_t`
,
`hb_com_resp_ad_iter_init`
and
`hb_com_resp_ad
_iter_next`
-
add
`hb_com_
zone_lost_data_iter_t`
,
`hb_com_zone_lost_data_iter_init`
and
`hb_com_zone_lost_data
_iter_next`
-
add
`ADEMCO_PACKET_PWD_MIN_LEN`
,
`ADEMCO_PACKET_PWD_MAX_LEN`
-
code styles changed
-
when parse returns
`ADEMCO_PARSE_RESULT_ERROR`
,
`*ate`
will contains length to ignore, caller must drop
`*ate`
bytes of data
...
...
@@ -78,7 +87,7 @@
## 1.5.0
-
`hb_com_
resp_a2
_iter_t.com`
changed to pointer
-
`hb_com_
zone_data
_iter_t.com`
changed to pointer
-
update parser for
`timestamp`
-
add
`AdemcoControlSource`
defs
...
...
ademco.c
View file @
1dedea13
...
...
@@ -93,61 +93,61 @@ int ademco_is_valid_account(const char* acct) {
}
int
ademco_is_machine_status_event
(
ademco_event_t
ademco_event
)
{
return
ademco_event
==
EVENT_ARM
||
ademco_event
==
EVENT_
HALFARM
||
ademco_event
==
EVENT_
HALFARM
_1456
||
return
ademco_event
==
EVENT_ARM
_AWAY
||
ademco_event
==
EVENT_
ARM_STAY
||
ademco_event
==
EVENT_
ARM_STAY
_1456
||
ademco_event
==
EVENT_DISARM
;
}
int
ademco_is_machine_type_event
(
ademco_event_t
ademco_event
)
{
return
ademco_event
==
EVENT_I_AM_NET_MODULE
||
ademco_event
==
EVENT_I_AM_GPRS
||
ademco_event
==
EVENT_I_AM_LCD
_MACHINE
||
ademco_event
==
EVENT_I_AM_WIRE
_MACHINE
||
ademco_event
==
EVENT_I_AM_WIFI
_MACHINE
||
ademco_event
==
EVENT_I_AM_3_SECTION
_MACHINE
||
ademco_event
==
EVENT_I_AM_IOT
_MACHINE
||
ademco_event
==
EVENT_I_AM_LCD
||
ademco_event
==
EVENT_I_AM_WIRE
||
ademco_event
==
EVENT_I_AM_WIFI
||
ademco_event
==
EVENT_I_AM_3_SECTION
||
ademco_event
==
EVENT_I_AM_IOT
||
ademco_event
==
EVENT_I_AM_TRUE_COLOR
||
ademco_event
==
EVENT_I_AM_GPRS_IOT
||
ademco_event
==
EVENT_I_AM_GPRS_PHONE
||
ademco_event
==
EVENT_I_AM_NB
_MACHINE
||
ademco_event
==
EVENT_I_AM_WIFI2
_MACHINE
;
ademco_event
==
EVENT_I_AM_NB
||
ademco_event
==
EVENT_I_AM_WIFI2
;
}
int
ademco_is_event_need_control_source
(
ademco_event_t
ademco_event
)
{
return
ademco_event
==
EVENT_ARM
||
ademco_event
==
EVENT_
HALFARM
||
ademco_event
==
EVENT_
HALFARM
_1456
||
return
ademco_event
==
EVENT_ARM
_AWAY
||
ademco_event
==
EVENT_
ARM_STAY
||
ademco_event
==
EVENT_
ARM_STAY
_1456
||
ademco_event
==
EVENT_DISARM
||
ademco_event
==
EVENT_EMERGENCY
||
ademco_event
==
EVENT_DURESS
||
ademco_event
==
EVENT_PHONE_USER_CANCLE_ALARM
;
}
ademco_event_t
ademco_get_exception_event_by_re
sume_event
(
ademco_event_t
resumeE
vent
)
{
switch
(
re
sumeE
vent
)
{
case
EVENT_
RECONNECT
:
ademco_event_t
ademco_get_exception_event_by_re
cover_event
(
ademco_event_t
recover_e
vent
)
{
switch
(
re
cover_e
vent
)
{
case
EVENT_
DISCONNECT_RECOVER
:
return
EVENT_DISCONNECT
;
case
EVENT_LOST_RECOVER
:
return
EVENT_LOST
;
case
EVENT_SERIAL
485CONN
:
return
EVENT_SERIAL
485
DIS
;
case
EVENT_SUB_MACHINE_SENSOR_RE
SUME
:
case
EVENT_SERIAL
_485_RECOVER
:
return
EVENT_SERIAL
_485_
DIS
;
case
EVENT_SUB_MACHINE_SENSOR_RE
COVER
:
return
EVENT_SUB_MACHINE_SENSOR_EXCEPTION
;
case
EVENT_SUB_MACHINE_POWER_RE
SUME
:
case
EVENT_SUB_MACHINE_POWER_RE
COVER
:
return
EVENT_SUB_MACHINE_POWER_EXCEPTION
;
case
EVENT_BATTERY_RECOVER
:
return
EVENT_LOWBATTERY
;
case
EVENT_
LOW_
BATTERY_RECOVER
:
return
EVENT_LOW
_
BATTERY
;
case
EVENT_BATTERY_EXCEPTION_RECOVER
:
return
EVENT_BATTERY_EXCEPTION
;
case
EVENT_OTHER_EXCEPTION_RECOVER
:
return
EVENT_OTHER_EXCEPTION
;
case
EVENT_AC_RECOVER
:
return
EVENT_AC_BROKE
;
case
EVENT_SOLARDISTURB_RECOVER
:
return
EVENT_SOLARDISTURB
;
case
EVENT_BADBATTERY_RECOVER
:
return
EVENT_BADBATTERY
;
case
EVENT_SOLAR
_
DISTURB_RECOVER
:
return
EVENT_SOLAR
_
DISTURB
;
case
EVENT_BAD
_
BATTERY_RECOVER
:
return
EVENT_BAD
_
BATTERY
;
default:
return
EVENT_INVALID_EVENT
;
}
...
...
@@ -155,39 +155,38 @@ ademco_event_t ademco_get_exception_event_by_resume_event(ademco_event_t resumeE
ademco_event_level_t
ademco_get_event_level
(
ademco_event_t
ademco_event
)
{
switch
(
ademco_event
)
{
case
EVENT_ARM
:
case
EVENT_ARM
_AWAY
:
case
EVENT_DISARM
:
case
EVENT_
HALFARM
:
case
EVENT_
HALFARM
_1456
:
case
EVENT_
ARM_STAY
:
case
EVENT_
ARM_STAY
_1456
:
return
EVENT_LEVEL_STATUS
;
case
EVENT_BADBATTERY_RECOVER
:
case
EVENT_BAD
_
BATTERY_RECOVER
:
case
EVENT_AC_RECOVER
:
case
EVENT_
RECONNECT
:
case
EVENT_
DISCONNECT_RECOVER
:
case
EVENT_LOST_RECOVER
:
case
EVENT_SERIAL
485CONN
:
case
EVENT_SUB_MACHINE_SENSOR_RE
SUME
:
case
EVENT_SUB_MACHINE_POWER_RE
SUME
:
case
EVENT_BATTERY_RECOVER
:
case
EVENT_SERIAL
_485_RECOVER
:
case
EVENT_SUB_MACHINE_SENSOR_RE
COVER
:
case
EVENT_SUB_MACHINE_POWER_RE
COVER
:
case
EVENT_
LOW_
BATTERY_RECOVER
:
case
EVENT_BATTERY_EXCEPTION_RECOVER
:
case
EVENT_OTHER_EXCEPTION_RECOVER
:
case
EVENT_SOLARDISTURB_RECOVER
:
return
EVENT_LEVEL_EXCEPTION_RE
SUME
;
case
EVENT_SOLAR
_
DISTURB_RECOVER
:
return
EVENT_LEVEL_EXCEPTION_RE
COVER
;
case
EVENT_AC_BROKE
:
case
EVENT_LOWBATTERY
:
case
EVENT_BADBATTERY
:
case
EVENT_SOLARDISTURB
:
case
EVENT_LOW
_
BATTERY
:
case
EVENT_BAD
_
BATTERY
:
case
EVENT_SOLAR
_
DISTURB
:
case
EVENT_DISCONNECT
:
case
EVENT_LOST
:
// case EVENT_DOORRINGING: //case EVENT_CONN_HANGUP: //case EVENT_CONN_RESUME:
case
EVENT_SUB_MACHINE_SENSOR_EXCEPTION
:
case
EVENT_SUB_MACHINE_POWER_EXCEPTION
:
case
EVENT_BATTERY_EXCEPTION
:
case
EVENT_OTHER_EXCEPTION
:
return
EVENT_LEVEL_EXCEPTION
;
case
EVENT_SERIAL
485
DIS
:
case
EVENT_SERIAL
_485_
DIS
:
case
EVENT_BURGLAR
:
case
EVENT_DURESS
:
case
EVENT_EMERGENCY
:
...
...
@@ -212,8 +211,9 @@ const char* ademco_event_to_string(ademco_event_t ademco_event) {
// ----标准安定宝协议事件----
ADEMCO_STATUS_EVENTS_MAP
(
XX
)
ADEMCO_ALARM_EVENTS_MAP
(
XX
)
ADEMCO_ALARM_RECOVER_EVENTS_MAP
(
XX
)
ADEMCO_EXEPTION_EVENTS_MAP
(
XX
)
ADEMCO_
RESUME
_EVENTS_MAP
(
XX
)
ADEMCO_
EXEPTION_RECOVER
_EVENTS_MAP
(
XX
)
// ---私有事件---------
ADEMCO_HB_EVENTS_MAP
(
XX
)
...
...
@@ -233,8 +233,9 @@ const char* ademco_event_to_string_chinese(ademco_event_t ademco_event) {
// ----标准安定宝协议事件----
ADEMCO_STATUS_EVENTS_MAP
(
XX
)
ADEMCO_ALARM_EVENTS_MAP
(
XX
)
ADEMCO_ALARM_RECOVER_EVENTS_MAP
(
XX
)
ADEMCO_EXEPTION_EVENTS_MAP
(
XX
)
ADEMCO_
RESUME
_EVENTS_MAP
(
XX
)
ADEMCO_
EXEPTION_RECOVER
_EVENTS_MAP
(
XX
)
// ---私有事件---------
ADEMCO_HB_EVENTS_MAP
(
XX
)
...
...
@@ -451,7 +452,7 @@ size_t ademco_data_to_congwin_fe100(ademco_char_t* fe100, size_t fe100_len,
// E for open, R for close
if
(
ademco_data
->
ademco_event
/
1000
==
1
||
ademco_data
->
ademco_event
==
EVENT_
HALFARM
)
ademco_data
->
ademco_event
==
EVENT_
ARM_STAY
)
*
p
++
=
'E'
;
else
*
p
++
=
'R'
;
...
...
ademco.h
View file @
1dedea13
...
...
@@ -69,18 +69,18 @@ typedef uint16_t ademco_zone_t;
#define ADEMCO_SIGNAL_STRENGTH_MIN 0
#define ADEMCO_SIGNAL_STRENGTH_MAX 31
// 主机
或分机状态报告
// 主机
状态
#define ADEMCO_STATUS_EVENTS_MAP(XX) \
XX(ARM
, 3400, "布防")
\
XX(ARM
_AWAY, 3400, "离家布防")
\
XX(DISARM, 1400, "撤防") \
XX(HALFARM, 3456, "半布防") \
XX(HALFARM_1456, 1456, "半布防") \
XX(EMERGENCY, 1120, "紧急报警")
XX(ARM_STAY, 3456, "留守布防") \
XX(ARM_STAY_1456, 1456, "留守布防")
// 防区报警
#define ADEMCO_ALARM_EVENTS_MAP(XX) \
XX(EMERGENCY, 1120, "紧急报警") \
XX(BURGLAR, 1130, "盗警") \
XX(DOOR
RINGING, 1134, "门铃")
\
XX(DOOR
_RING, 1134, "门铃")
\
XX(FIRE, 1110, "火警") \
XX(DURESS, 1121, "胁迫") \
XX(GAS, 1151, "煤气") \
...
...
@@ -89,25 +89,37 @@ typedef uint16_t ademco_zone_t;
XX(ZONE_TAMPER, 1383, "防区防拆") \
XX(BYPASS, 1570, "旁路")
// 防区报警恢复
#define ADEMCO_ALARM_RECOVER_EVENTS_MAP(XX) \
XX(EMERGENCY_RECOVER, 3120, "紧急恢复") \
XX(BURGLAR_RECOVER, 3130, "盗警恢复") \
XX(DOOR_RING_RECOVER, 3134, "门铃恢复") \
XX(FIRE_RECOVER, 3110, "火警恢复") \
XX(DURESS_RECOVER, 3121, "胁迫恢复") \
XX(GAS_RECOVER, 3151, "煤气恢复") \
XX(WATER_RECOVER, 3113, "水警恢复") \
XX(TAMPER_RECOVER, 3137, "主机防拆恢复") \
XX(ZONE_TAMPER_RECOVER, 3383, "防区防拆恢复") \
XX(BYPASS_RECOVER, 3570, "解除旁路")
// 防区异常
#define ADEMCO_EXEPTION_EVENTS_MAP(XX) \
XX(AC_BROKE, 1301, "主机AC掉电") \
XX(LOW
BATTERY, 1302, "低电")
\
XX(BAD
BATTERY, 1311, "坏电")
\
XX(SOLAR
DISTURB, 1387, "光扰")
\
XX(LOW
_BATTERY, 1302, "低电")
\
XX(BAD
_BATTERY, 1311, "坏电")
\
XX(SOLAR
_DISTURB, 1387, "光扰")
\
XX(DISCONNECT, 1381, "失效") \
XX(LOST, 1393, "失联") \
XX(BATTERY_EXCEPTION, 1384, "电源故障") \
XX(OTHER_EXCEPTION, 1380, "其他故障")
// 防区异常恢复
#define ADEMCO_RESUME_EVENTS_MAP(XX) \
XX(BYPASS_RESUME, 3570, "解除旁路") \
#define ADEMCO_EXEPTION_RECOVER_EVENTS_MAP(XX) \
XX(AC_RECOVER, 3301, "主机AC复电") \
XX(
BATTERY_RECOVER, 3302, "低电恢复")
\
XX(BAD
BATTERY_RECOVER, 3311, "坏电恢复")
\
XX(SOLAR
DISTURB_RECOVER, 3387, "光扰恢复")
\
XX(
RECONNECT, 3381, "失效恢复")
\
XX(
LOW_BATTERY_RECOVER, 3302, "低电恢复")
\
XX(BAD
_BATTERY_RECOVER, 3311, "坏电恢复")
\
XX(SOLAR
_DISTURB_RECOVER, 3387, "光扰恢复")
\
XX(
DISCONNECT_RECOVER, 3381, "失效恢复")
\
XX(LOST_RECOVER, 3393, "失联恢复") \
XX(BATTERY_EXCEPTION_RECOVER, 3384, "电源故障恢复") \
XX(OTHER_EXCEPTION_RECOVER, 3380, "其他故障恢复") \
...
...
@@ -115,15 +127,15 @@ typedef uint16_t ademco_zone_t;
// 恒博自定义安定宝事件码
#define ADEMCO_HB_EVENTS_MAP(XX) \
XX(SERIAL
485DIS, 1485, "485断开")
\
XX(SERIAL
485CONN, 3485, "485连接")
\
XX(SERIAL
_485_DIS, 1485, "485断开")
\
XX(SERIAL
_485_RECOVER, 3485, "485连接")
\
XX(CONN_HANGUP, 1700, "链路挂起") \
XX(CONN_RE
SUME, 3700, "链路恢复")
\
XX(CONN_RE
COVER, 3700, "链路恢复")
\
XX(DISARM_PWD_ERR, 1701, "撤防密码错误") \
XX(SUB_MACHINE_SENSOR_EXCEPTION, 1702, "分机探头异常") \
XX(SUB_MACHINE_SENSOR_RE
SUME, 3702, "分机探头恢复")
\
XX(SUB_MACHINE_SENSOR_RE
COVER, 3702, "分机探头恢复")
\
XX(SUB_MACHINE_POWER_EXCEPTION, 1703, "分机电源异常") \
XX(SUB_MACHINE_POWER_RE
SUME, 3703, "分机电源恢复")
\
XX(SUB_MACHINE_POWER_RE
COVER, 3703, "分机电源恢复")
\
XX(COM_PASSTHROUGH, 1704, "串口透传") \
XX(ENTER_SET_MODE, 2704, "进入设置状态") \
XX(EXIT_SET_MODE, 3704, "退出设置状态") \
...
...
@@ -131,16 +143,16 @@ typedef uint16_t ademco_zone_t;
XX(WRITE_TO_MACHINE, 1706, "写入主机信息") \
XX(I_AM_NET_MODULE, 1707, "主机类型--网络模块") \
XX(I_AM_GPRS, 1717, "主机类型--GPRS主机") \
XX(I_AM_LCD
_MACHINE, 1727, "主机类型--液晶主机")
\
XX(I_AM_WIRE
_MACHINE, 1737, "主机类型--网线主机")
\
XX(I_AM_WIFI
_MACHINE, 1747, "主机类型--WiFi主机(停用)")
\
XX(I_AM_3_SECTION
_MACHINE, 1757, "主机类型--三区段主机")
\
XX(I_AM_IOT
_MACHINE, 1767, "主机类型--物联卡主机")
\
XX(I_AM_LCD
, 1727, "主机类型--液晶主机")
\
XX(I_AM_WIRE
, 1737, "主机类型--网线主机")
\
XX(I_AM_WIFI
, 1747, "主机类型--WiFi主机(停用)")
\
XX(I_AM_3_SECTION
, 1757, "主机类型--三区段主机")
\
XX(I_AM_IOT
, 1767, "主机类型--物联卡主机")
\
XX(I_AM_TRUE_COLOR, 1777, "主机类型--真彩主机") \
XX(I_AM_GPRS_IOT, 1787, "主机类型--物联卡主机") \
XX(I_AM_GPRS_PHONE, 1797, "主机类型--GRPS主机带电话功能") \
XX(I_AM_NB
_MACHINE, 1807, "主机类型--NB报警接收主机")
\
XX(I_AM_WIFI2
_MACHINE, 1817, "主机类型--WiFi主机(新版)")
\
XX(I_AM_NB
, 1807, "主机类型--NB报警接收主机")
\
XX(I_AM_WIFI2
, 1817, "主机类型--WiFi主机(新版)")
\
XX(PHONE_USER_SOS, 1709, "手机用户SOS") \
XX(PHONE_USER_CANCLE_ALARM, 1711, "手机用户消警") \
XX(ENTER_SETTING_MODE, 1712, "主机进入设置状态") \
...
...
@@ -166,10 +178,12 @@ typedef enum ademco_event_t {
ADEMCO_STATUS_EVENTS_MAP
(
XX
)
// 防区报警
ADEMCO_ALARM_EVENTS_MAP
(
XX
)
// 防区报警恢复
ADEMCO_ALARM_RECOVER_EVENTS_MAP
(
XX
)
// 防区异常
ADEMCO_EXEPTION_EVENTS_MAP
(
XX
)
// 防区异常恢复
ADEMCO_
RESUME
_EVENTS_MAP
(
XX
)
ADEMCO_
EXEPTION_RECOVER
_EVENTS_MAP
(
XX
)
// ---私有事件---------
ADEMCO_HB_EVENTS_MAP
(
XX
)
...
...
@@ -182,10 +196,10 @@ typedef enum ademco_event_t {
// 安定宝事件级别
typedef
enum
ademco_event_level_t
{
EVENT_LEVEL_NULL
,
EVENT_LEVEL_STATUS
,
// 主机状态
EVENT_LEVEL_EXCEPTION_RE
SUME
,
// 黄色报警
EVENT_LEVEL_EXCEPTION
,
// 橙色报警
EVENT_LEVEL_ALARM
,
// 红色报警
EVENT_LEVEL_STATUS
,
// 主机状态
EVENT_LEVEL_EXCEPTION_RE
COVER
,
// 黄色报警
EVENT_LEVEL_EXCEPTION
,
// 橙色报警
EVENT_LEVEL_ALARM
,
// 红色报警
}
ademco_event_level_t
;
// 安定宝协议解析结果
...
...
@@ -351,7 +365,7 @@ ademco_event_level_t ademco_get_event_level(ademco_event_t ademco_event);
// 获取异常恢复事件所对应的异常事件
ADEMCO_EXPORT_SYMBOL
ademco_event_t
ademco_get_exception_event_by_re
sume_event
(
ademco_event_t
resumeE
vent
);
ademco_event_t
ademco_get_exception_event_by_re
cover_event
(
ademco_event_t
recover_e
vent
);
ADEMCO_EXPORT_SYMBOL
const
char
*
ademco_event_to_string
(
ademco_event_t
ademco_event
);
...
...
ademco_version.h
View file @
1dedea13
...
...
@@ -7,7 +7,7 @@
*/
#define ADEMCO_VERSION_MAJOR 2
#define ADEMCO_VERSION_MINOR
4
#define ADEMCO_VERSION_MINOR
5
#define ADEMCO_VERSION_PATCH 0
#define ADEMCO_VERSION_IS_RELEASE 1
#define ADEMCO_VERSION_SUFFIX ""
...
...
examples/gen_event_md/gen_event_md.cpp
View file @
1dedea13
...
...
@@ -39,7 +39,7 @@ ademco_event_t alarmEvents[] = {
ademco_event_t
excepEvents
[]
=
{
#define XX(name, code, zh) EVENT_##name,
ADEMCO_EXEPTION_EVENTS_MAP
(
XX
)
ADEMCO_
RESUME
_EVENTS_MAP
(
XX
)
ADEMCO_
EXEPTION_RECOVER
_EVENTS_MAP
(
XX
)
#undef XX
};
...
...
@@ -53,8 +53,9 @@ ademco_event_t allEvents[] = {
#define XX(name, code, zh) EVENT_##name,
ADEMCO_STATUS_EVENTS_MAP
(
XX
)
ADEMCO_ALARM_EVENTS_MAP
(
XX
)
ADEMCO_ALARM_RECOVER_EVENTS_MAP
(
XX
)
ADEMCO_EXEPTION_EVENTS_MAP
(
XX
)
ADEMCO_
RESUME
_EVENTS_MAP
(
XX
)
ADEMCO_
EXEPTION_RECOVER
_EVENTS_MAP
(
XX
)
ADEMCO_HB_EVENTS_MAP
(
XX
)
#undef XX
};
...
...
examples/server_demo/server_demo.cpp
View file @
1dedea13
...
...
@@ -290,7 +290,7 @@ int main(int argc, char** argv) {
if
(
cmd
==
'a'
||
cmd
==
'A'
)
{
std
::
lock_guard
<
std
::
mutex
>
lg
(
mutex
);
evntsWaiting4Send
.
push_back
(
EVENT_ARM
);
evntsWaiting4Send
.
push_back
(
EVENT_ARM
_AWAY
);
}
else
if
(
cmd
==
'd'
||
cmd
==
'D'
)
{
int
ret
=
0
;
do
{
...
...
hb_core.c
View file @
1dedea13
...
...
@@ -333,8 +333,8 @@ hb_machine_status_t hb_machine_status_from_ademco_event(ademco_event_t ademco_ev
HMS_EVENT_MAP
(
XX
)
#undef XX
case
EVENT_
HALFARM
_1456
:
return
HMS_
HALF_ARM
;
case
EVENT_
ARM_STAY
_1456
:
return
HMS_
ARM_STAY
;
case
EVENT_ENTER_SET_MODE
:
return
HMS_SETTING
;
default:
...
...
hb_core.h
View file @
1dedea13
...
...
@@ -9,7 +9,6 @@
extern
"C"
{
#endif
// 三防区主机状态GG范围 1~3
#define HB_3SECTION_MACHINE_GG_MIN 1
#define HB_3SECTION_MACHINE_GG_MAX 3
...
...
@@ -21,16 +20,16 @@ extern "C" {
// 主机状态表
#define HB_MACHINE_STATUS_MAP(XX) \
XX
(
ARM
,
0
,
"布防"
)
\
XX
(
HALF_ARM
,
1
,
"半布防"
)
\
XX
(
ARM
_AWAY
,
0
,
"离家布防"
)
\
XX
(
ARM_STAY
,
1
,
"留守布防"
)
\
XX
(
DISARM
,
2
,
"撤防"
)
\
XX
(
SETTING
,
3
,
"设置"
)
// 主机状态与安定宝事件码对照表
#define HMS_EVENT_MAP(XX) \
XX
(
HMS_ARM
,
EVENT_ARM
)
\
XX
(
HMS_
HALF_ARM
,
EVENT_HALFARM
)
\
XX
(
HMS_DISARM
,
EVENT_DISARM
)
\
#define HMS_EVENT_MAP(XX)
\
XX
(
HMS_ARM
_AWAY
,
EVENT_ARM_AWAY
)
\
XX
(
HMS_
ARM_STAY
,
EVENT_ARM_STAY
)
\
XX
(
HMS_DISARM
,
EVENT_DISARM
)
\
XX
(
HMS_SETTING
,
EVENT_ENTER_SETTING_MODE
)
// 主机状态
...
...
@@ -61,19 +60,19 @@ typedef enum hb_machine_status_t {
XX
(
WIFI2
,
12
,
"WiFi主机新版"
)
// 主机类型与安定宝事件码对照表
#define HMT_EVENT_MAP(XX)
\
XX
(
HMT_WIFI
,
EVENT_I_AM_WIFI
_MACHINE
)
\
XX
(
HMT_GPRS_IOT
,
EVENT_I_AM_GPRS_IOT
)
\
XX
(
HMT_NETMOD
,
EVENT_I_AM_NET_MODULE
)
\
XX
(
HMT_GPRS
,
EVENT_I_AM_GPRS
)
\
XX
(
HMT_LCD
,
EVENT_I_AM_LCD
_MACHINE
)
\
XX
(
HMT_WIRED
,
EVENT_I_AM_WIRE
_MACHINE
)
\
XX
(
HMT_TRUE_COLOR
,
EVENT_I_AM_TRUE_COLOR
)
\
XX
(
HMT_THREE_SECTION
,
EVENT_I_AM_3_SECTION
_MACHINE
)
\
XX
(
HMT_IOT
,
EVENT_I_AM_IOT
_MACHINE
)
\
XX
(
HMT_GPRS_PHONE
,
EVENT_I_AM_GPRS_PHONE
)
\
XX
(
HMT_NB
,
EVENT_I_AM_NB
_MACHINE
)
\
XX
(
HMT_WIFI2
,
EVENT_I_AM_WIFI2
_MACHINE
)
#define HMT_EVENT_MAP(XX) \
XX
(
HMT_WIFI
,
EVENT_I_AM_WIFI
)
\
XX
(
HMT_GPRS_IOT
,
EVENT_I_AM_GPRS_IOT
)
\
XX
(
HMT_NETMOD
,
EVENT_I_AM_NET_MODULE
)
\
XX
(
HMT_GPRS
,
EVENT_I_AM_GPRS
)
\
XX
(
HMT_LCD
,
EVENT_I_AM_LCD
)
\
XX
(
HMT_WIRED
,
EVENT_I_AM_WIRE
)
\
XX
(
HMT_TRUE_COLOR
,
EVENT_I_AM_TRUE_COLOR
)
\
XX
(
HMT_THREE_SECTION
,
EVENT_I_AM_3_SECTION
)
\
XX
(
HMT_IOT
,
EVENT_I_AM_IOT
)
\
XX
(
HMT_GPRS_PHONE
,
EVENT_I_AM_GPRS_PHONE
)
\
XX
(
HMT_NB
,
EVENT_I_AM_NB
)
\
XX
(
HMT_WIFI2
,
EVENT_I_AM_WIFI2
)
// 主机类型
typedef
enum
hb_machine_type_t
{
...
...
@@ -110,7 +109,7 @@ typedef enum hb_machine_type_t {
XX
(
HZP_DURESS
,
EVENT_DURESS
)
\
XX
(
HZP_GAS
,
EVENT_GAS
)
\
XX
(
HZP_WATER
,
EVENT_WATER
)
\
XX
(
HZP_DOOR_RING
,
EVENT_DOOR
RING
ING
)
XX
(
HZP_DOOR_RING
,
EVENT_DOOR
_R
ING
)
// 防区属性
typedef
enum
hb_zone_property_t
{
...
...
@@ -278,7 +277,7 @@ const char* hb_machine_type_to_string_chinese(hb_machine_type_t type);
ADEMCO_EXPORT_SYMBOL
const
char
*
hb_zone_property_to_string_chinese
(
hb_zone_property_t
zp
);
#endif // ADEMCO_ENABLE_CHINESE
#endif
// ADEMCO_ENABLE_CHINESE
ADEMCO_EXPORT_SYMBOL
const
char
*
hb_get_zone_format_str
(
hb_machine_type_t
type
);
...
...
swig/CSharpDemo.cs
View file @
1dedea13
...
...
@@ -43,7 +43,7 @@ namespace CSharpDemo
{
Console
.
WriteLine
(
"test pack"
);
byte
[]
buff
=
new
byte
[
1024
];
uint
len
=
libademco
.
ademco_make_hb_packet
(
buff
,
1024
,
1
,
"861234567890"
,
666666
,
ademco_event_t
.
EVENT_ARM
,
0
,
0
,
null
);
uint
len
=
libademco
.
ademco_make_hb_packet
(
buff
,
1024
,
1
,
"861234567890"
,
666666
,
ademco_event_t
.
EVENT_ARM
_AWAY
,
0
,
0
,
null
);
Debug
.
Assert
(
len
>
0
);
Console
.
WriteLine
(
"len={0:D}"
,
len
);
libademco
.
ademco_print
(
buff
,
len
);
...
...
@@ -58,7 +58,7 @@ namespace CSharpDemo
Debug
.
Assert
(
pkt
.
seq
==
1
);
Debug
.
Assert
(
pkt
.
acct
==
"861234567890"
);
Debug
.
Assert
(
pkt
.
data
.
ademco_id
==
666666
);
Debug
.
Assert
(
pkt
.
data
.
ademco_event
==
ademco_event_t
.
EVENT_ARM
);
Debug
.
Assert
(
pkt
.
data
.
ademco_event
==
ademco_event_t
.
EVENT_ARM
_AWAY
);
Debug
.
Assert
(
pkt
.
data
.
gg
==
0
);
Debug
.
Assert
(
pkt
.
data
.
zone
==
0
);
}
...
...
@@ -68,7 +68,7 @@ namespace CSharpDemo
{
Console
.
WriteLine
(
"test pack, buff not enough"
);
Byte
[]
buff
=
new
Byte
[
10
];
uint
len
=
libademco
.
ademco_make_hb_packet
(
buff
,
10
,
1
,
"861234567890"
,
666666
,
ademco_event_t
.
EVENT_ARM
,
0
,
0
,
null
);
uint
len
=
libademco
.
ademco_make_hb_packet
(
buff
,
10
,
1
,
"861234567890"
,
666666
,
ademco_event_t
.
EVENT_ARM
_AWAY
,
0
,
0
,
null
);
Debug
.
Assert
(
len
==
0
);
}
...
...
@@ -215,7 +215,7 @@ namespace CSharpDemo
static
void
sendArm
(
NetworkStream
stream
,
ushort
seq
,
string
acct
,
uint
ademco_id
)
{
byte
[]
buff
=
new
byte
[
1024
];
uint
len
=
libademco
.
ademco_make_hb_packet
(
buff
,
1024
,
seq
,
acct
,
ademco_id
,
ademco_event_t
.
EVENT_ARM
,
0
,
0
,
null
);
uint
len
=
libademco
.
ademco_make_hb_packet
(
buff
,
1024
,
seq
,
acct
,
ademco_id
,
ademco_event_t
.
EVENT_ARM
_AWAY
,
0
,
0
,
null
);
Console
.
Write
(
"S:"
);
libademco
.
ademco_print
(
buff
,
len
);
stream
.
Write
(
buff
,
0
,
(
int
)
len
);
...
...
swig/JavaDemo.java
View file @
1dedea13
...
...
@@ -103,7 +103,7 @@ public class JavaDemo {
System
.
out
.
println
(
"testing pack..."
);
System
.
out
.
println
(
"using seq=1234, acct=861234567890, ademco_id=666666, event=3400, zone=0, gg=0"
);
ademco_packet_t
pkt
=
new
ademco_packet_t
();
libademco
.
ademco_make_hb_packet2
(
pkt
,
1234
,
"861234567890"
,
666666
l
,
ademco_event_t
.
EVENT_ARM
,
(
short
)
0
,
0
,
null
);
libademco
.
ademco_make_hb_packet2
(
pkt
,
1234
,
"861234567890"
,
666666
l
,
ademco_event_t
.
EVENT_ARM
_AWAY
,
(
short
)
0
,
0
,
null
);
System
.
out
.
println
(
"data="
+
printable_bytes
(
pkt
.
getRaw
(),
pkt
.
getRaw_len
()));
}
...
...
@@ -116,7 +116,7 @@ public class JavaDemo {
libademco
.
ademco_make_xdata
(
xdata
,
ademco_xdata_length_format_t
.
ADEMCO_XDATA_LENGTH_FMT_TWO_HEX
,
ademco_xdata_transform_t
.
ADEMCO_XDATA_TRANSFORM_AS_IS
,
"123456"
.
getBytes
(),
6
);
ademco_packet_t
pkt
=
new
ademco_packet_t
();
libademco
.
ademco_make_hb_packet2
(
pkt
,
1234
,
"861234567890"
,
666666
l
,
ademco_event_t
.
EVENT_ARM
,
(
short
)
0
,
0
,
xdata
);
libademco
.
ademco_make_hb_packet2
(
pkt
,
1234
,
"861234567890"
,
666666
l
,
ademco_event_t
.
EVENT_ARM
_AWAY
,
(
short
)
0
,
0
,
xdata
);
System
.
out
.
println
(
"data="
+
printable_bytes
(
pkt
.
getRaw
(),
pkt
.
getRaw_len
()));
}
...
...
@@ -135,7 +135,7 @@ public class JavaDemo {
libademco
.
ademco_make_xdata
(
xdata
,
ademco_xdata_length_format_t
.
ADEMCO_XDATA_LENGTH_FMT_TWO_HEX
,
ademco_xdata_transform_t
.
ADEMCO_XDATA_TRANSFORM_AS_IS
,
xdatacontent
,
5
);
ademco_packet_t
pkt
=
new
ademco_packet_t
();
libademco
.
ademco_make_hb_packet2
(
pkt
,
1234
,
"861234567890"
,
666666
l
,
ademco_event_t
.
EVENT_ARM
,
(
short
)
0
,
0
,
xdata
);
libademco
.
ademco_make_hb_packet2
(
pkt
,
1234
,
"861234567890"
,
666666
l
,
ademco_event_t
.
EVENT_ARM
_AWAY
,
(
short
)
0
,
0
,
xdata
);
System
.
out
.
println
(
"data="
+
printable_bytes
(
pkt
.
getRaw
(),
pkt
.
getRaw_len
()));
}
...
...
@@ -291,7 +291,7 @@ public class JavaDemo {
}
private
void
arm
()
throws
IOException
{
libademco
.
ademco_make_hb_packet2
(
pkt
,
nextSeq
(),
acct
,
ademco_id
,
ademco_event_t
.
EVENT_ARM
,
(
short
)
0
,
0
,
null
);
libademco
.
ademco_make_hb_packet2
(
pkt
,
nextSeq
(),
acct
,
ademco_id
,
ademco_event_t
.
EVENT_ARM
_AWAY
,
(
short
)
0
,
0
,
null
);
channel
.
write
(
ByteBuffer
.
wrap
(
getRawWithLen
()));
System
.
out
.
println
(
id
()
+
" S:"
+
printable_bytes
(
pkt
.
getRaw
(),
pkt
.
getRaw_len
()));
}
...
...
swig/nodejs-demo.js
View file @
1dedea13
...
...
@@ -30,7 +30,7 @@ function test_parse() {
function
test_pack
()
{
console
.
log
(
"test pack"
);
var
pkt
=
new
libademco
.
ademco_packet_t
();
libademco
.
ademco_make_hb_packet2
(
pkt
,
1
,
"861234567890"
,
666666
,
libademco
.
EVENT_ARM
,
0
,
0
,
null
);
libademco
.
ademco_make_hb_packet2
(
pkt
,
1
,
"861234567890"
,
666666
,
libademco
.
EVENT_ARM
_AWAY
,
0
,
0
,
null
);
console
.
log
(
"len=%d"
,
pkt
.
raw_len
);
libademco
.
ademco_print
(
pkt
.
raw
,
pkt
.
raw_len
);
...
...
@@ -44,7 +44,7 @@ function test_pack() {
assert
.
strictEqual
(
pkt2
.
seq
,
1
);
assert
.
strictEqual
(
pkt2
.
acct
,
"861234567890"
);
assert
.
strictEqual
(
pkt2
.
data
.
ademco_id
,
666666
);
assert
.
strictEqual
(
pkt2
.
data
.
ademco_event
,
libademco
.
EVENT_ARM
);
assert
.
strictEqual
(
pkt2
.
data
.
ademco_event
,
libademco
.
EVENT_ARM
_AWAY
);
assert
.
strictEqual
(
pkt2
.
data
.
gg
,
0
);
assert
.
strictEqual
(
pkt2
.
data
.
zone
,
0
);
}
...
...
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