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
375d86bf
Commit
375d86bf
authored
Jun 05, 2023
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
testing node
parent
9713cdaf
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
103 additions
and
33 deletions
+103
-33
.gitignore
.gitignore
+2
-0
ademco.c
ademco.c
+2
-0
ademco.h
ademco.h
+3
-2
hb_com.c
hb_com.c
+31
-29
hb_com.h
hb_com.h
+4
-2
README.md
swig/README.md
+22
-0
binding.gyp
swig/binding.gyp
+12
-0
nodejs-demo.js
swig/nodejs-demo.js
+24
-0
win_node.bat
swig/win_node.bat
+3
-0
No files found.
.gitignore
View file @
375d86bf
...
...
@@ -3,6 +3,8 @@ swig/com/hb3344/ademco/
libademco_java_wrap.c
libademco_csharp_wrap.c
libademco_python_wrap.c
libademco_wrap.cxx
build/
.vscode/
.vs/
...
...
ademco.c
View file @
375d86bf
...
...
@@ -245,6 +245,7 @@ const char* ademcoEventToString(AdemcoEvent ademcoEvent) {
}
}
#ifdef ADEMCO_ENABLE_CHINESE
const
char
*
ademcoEventToStringChinese
(
AdemcoEvent
ademcoEvent
)
{
switch
(
ademcoEvent
)
{
case
EVENT_ARM
:
return
"布防"
;
...
...
@@ -324,6 +325,7 @@ const char* ademcoEventToStringChinese(AdemcoEvent ademcoEvent) {
default:
return
"未定义的安定宝事件"
;
}
}
#endif
static
const
uint16_t
crc16Table
[
256
]
=
{
/* DEFINE THE FIRST ORDER POLYINOMIAL TABLE */
...
...
ademco.h
View file @
375d86bf
...
...
@@ -35,7 +35,7 @@
extern
"C"
{
#endif
#if
def SWIG
#if
defined(SWIGJAVA) || defined(SWIGCSHARP)
#define ademco_char_t uint8_t
#else
#define ademco_char_t char
...
...
@@ -377,8 +377,9 @@ ADEMCO_EXPORT_SYMBOL AdemcoEventLevel ademcoGetEventLevel(AdemcoEvent ademcoEven
//! 获取异常恢复事件所对应的异常事件
ADEMCO_EXPORT_SYMBOL
AdemcoEvent
ademcoGetExceptionEventByResumeEvent
(
AdemcoEvent
resumeEvent
);
ADEMCO_EXPORT_SYMBOL
const
char
*
ademcoEventToString
(
AdemcoEvent
ademcoEvent
);
#ifdef ADEMCO_ENABLE_CHINESE
ADEMCO_EXPORT_SYMBOL
const
char
*
ademcoEventToStringChinese
(
AdemcoEvent
ademcoEvent
);
#endif
//////////////////////// AdemcoDataSegment functions ////////////////////////
...
...
hb_com.c
View file @
375d86bf
...
...
@@ -343,16 +343,6 @@ const char* hbMachineStatusToString(HbMachineStatus status) {
}
}
const
char
*
hbMachineStatusToStringChinese
(
HbMachineStatus
status
)
{
switch
(
status
)
{
case
HMS_ARM
:
return
"布防"
;
case
HMS_HALF_ARM
:
return
"半布防"
;
case
HMS_DISARM
:
return
"撤防"
;
case
HMS_SETTING
:
return
"设置"
;
default:
return
"InvalidMachineStatus"
;
}
}
const
char
*
hbMachineTypeToString
(
HbMachineType
type
)
{
switch
(
type
)
{
case
HMT_WIFI
:
return
"0 WiFi"
;
...
...
@@ -372,25 +362,6 @@ const char* hbMachineTypeToString(HbMachineType type) {
}
}
const
char
*
hbMachineTypeToStringChinese
(
HbMachineType
type
)
{
switch
(
type
)
{
case
HMT_WIFI
:
return
"0 WiFi主机"
;
case
HMT_CAMERA
:
return
"1 摄像头主机"
;
case
HMT_GPRS_IOT
:
return
"2 简化的物联卡主机"
;
case
HMT_NETMOD
:
return
"3 网络模块+工程主机"
;
case
HMT_GPRS
:
return
"4 GPRS主机"
;
case
HMT_LCD
:
return
"5 液晶主机"
;
case
HMT_WIRED
:
return
"6 网线主机"
;
case
HMT_TRUE_COLOR
:
return
"7 真彩主机"
;
case
HMT_3_SECTION
:
return
"8 三区段主机"
;
case
HMT_IOT
:
return
"9 物联卡主机"
;
case
HMT_GPRS_PHONE
:
return
"10 GPRS主机能打电话"
;
case
HMT_NB
:
return
"11 NB报警接收主机"
;
case
HMT_WIFI2
:
return
"12 WiFi主机新版"
;
default:
return
"未知主机"
;
}
}
const
char
*
hbZonePropertyToString
(
HbZoneProperty
zp
)
{
switch
(
zp
)
{
case
HZP_BUGLAR
:
return
"HZP_BUGLAR"
;
...
...
@@ -413,6 +384,36 @@ const char* hbZonePropertyToString(HbZoneProperty zp) {
}
}
#ifdef ADEMCO_ENABLE_CHINESE
const
char
*
hbMachineStatusToStringChinese
(
HbMachineStatus
status
)
{
switch
(
status
)
{
case
HMS_ARM
:
return
"布防"
;
case
HMS_HALF_ARM
:
return
"半布防"
;
case
HMS_DISARM
:
return
"撤防"
;
case
HMS_SETTING
:
return
"设置"
;
default:
return
"InvalidMachineStatus"
;
}
}
const
char
*
hbMachineTypeToStringChinese
(
HbMachineType
type
)
{
switch
(
type
)
{
case
HMT_WIFI
:
return
"0 WiFi主机"
;
case
HMT_CAMERA
:
return
"1 摄像头主机"
;
case
HMT_GPRS_IOT
:
return
"2 简化的物联卡主机"
;
case
HMT_NETMOD
:
return
"3 网络模块+工程主机"
;
case
HMT_GPRS
:
return
"4 GPRS主机"
;
case
HMT_LCD
:
return
"5 液晶主机"
;
case
HMT_WIRED
:
return
"6 网线主机"
;
case
HMT_TRUE_COLOR
:
return
"7 真彩主机"
;
case
HMT_3_SECTION
:
return
"8 三区段主机"
;
case
HMT_IOT
:
return
"9 物联卡主机"
;
case
HMT_GPRS_PHONE
:
return
"10 GPRS主机能打电话"
;
case
HMT_NB
:
return
"11 NB报警接收主机"
;
case
HMT_WIFI2
:
return
"12 WiFi主机新版"
;
default:
return
"未知主机"
;
}
}
const
char
*
hbZonePropertyToStringChinese
(
HbZoneProperty
zp
)
{
switch
(
zp
)
{
case
HZP_BUGLAR
:
return
"匪警全局"
;
...
...
@@ -434,6 +435,7 @@ const char* hbZonePropertyToStringChinese(HbZoneProperty zp) {
default:
return
"无效属性"
;
}
}
#endif
const
char
*
hbGetZoneFormatString
(
HbMachineType
type
)
{
uint16_t
zone
=
hbZoneMax
(
type
);
...
...
hb_com.h
View file @
375d86bf
...
...
@@ -391,11 +391,13 @@ ADEMCO_EXPORT_SYMBOL AdemcoEvent hbMachineTypeToAdemcoEvent(HbMachineType type);
ADEMCO_EXPORT_SYMBOL
HbMachineType
hbMachineTypeFromAdemcoEvent
(
AdemcoEvent
ademcoEvent
);
ADEMCO_EXPORT_SYMBOL
AdemcoEvent
hbZonePropertyToAdemcoEvent
(
HbZoneProperty
zp
);
ADEMCO_EXPORT_SYMBOL
const
char
*
hbMachineStatusToString
(
HbMachineStatus
status
);
ADEMCO_EXPORT_SYMBOL
const
char
*
hbMachineStatusToStringChinese
(
HbMachineStatus
status
);
ADEMCO_EXPORT_SYMBOL
const
char
*
hbMachineTypeToString
(
HbMachineType
type
);
ADEMCO_EXPORT_SYMBOL
const
char
*
hbMachineTypeToStringChinese
(
HbMachineType
type
);
ADEMCO_EXPORT_SYMBOL
const
char
*
hbZonePropertyToString
(
HbZoneProperty
zp
);
#ifdef ADEMCO_ENABLE_CHINESE
ADEMCO_EXPORT_SYMBOL
const
char
*
hbMachineStatusToStringChinese
(
HbMachineStatus
status
);
ADEMCO_EXPORT_SYMBOL
const
char
*
hbMachineTypeToStringChinese
(
HbMachineType
type
);
ADEMCO_EXPORT_SYMBOL
const
char
*
hbZonePropertyToStringChinese
(
HbZoneProperty
zp
);
#endif
ADEMCO_EXPORT_SYMBOL
const
char
*
hbGetZoneFormatString
(
HbMachineType
type
);
// 累加校验,计算data[0] ~ data[len-2],校验和放在data[len-1]
...
...
swig/README.md
View file @
375d86bf
...
...
@@ -39,3 +39,25 @@ brew install swig
### 2.2 其他系统
请自行研究。
## 3. Node.js 绑定
### Windows 环境
1.
安装
`node-gyp`
:
`npm install -g node-gyp`
2.
使用
`swig`
生成代码
```
swig -c++ -javascript -node libademco.swig
```
将生成 `libademco_wrap.cxx`.
3.
编译
执行
`node-gyp configure build`
,将以配置文件
`binding.gyp`
生成工程并编译得到
`libadmeco_js.node`
,
`Windows`
下应为
`build/Release/libadmeoc_js.node`
4.
运行示例
`node nodejs-demo.js`
swig/binding.gyp
0 → 100644
View file @
375d86bf
{
"targets":[
{
"target_name": "libademco_js",
"sources":[
"libademco_wrap.cxx",
"../ademco.c",
"../hb_com.c",
]
}
]
}
\ No newline at end of file
swig/nodejs-demo.js
0 → 100644
View file @
375d86bf
const
assert
=
require
(
'assert'
);
const
libademco
=
require
(
'./build/Release/libademco_js'
);
libademco
.
ademcoPrint
(
"hello nodejs"
,
"hello nodejs"
.
length
);
console
.
log
(
libademco
);
console
.
log
(
"test parse..."
);
var
str
=
"
\n
C5C30053
\"
HENG-BO
\"
0000R000000L000000#90219125916578[#000000|1737 00 000]_09:11:19,08-05-2019
\
r"
;
var
cb
=
libademco
.
new_size_tp
();
var
pkt
=
new
libademco
.
AdemcoPacket
();
var
res
=
libademco
.
ademcoPacketParse
(
str
,
str
.
length
,
pkt
,
cb
);
assert
.
strictEqual
(
res
,
libademco
.
RESULT_OK
);
assert
.
strictEqual
(
libademco
.
size_tp_value
(
cb
),
str
.
length
);
assert
.
strictEqual
(
pkt
.
crc
,
0xC5C3
);
assert
.
strictEqual
(
pkt
.
len
,
0x0053
);
assert
.
strictEqual
(
pkt
.
id
,
libademco
.
AID_HB
);
assert
.
strictEqual
(
pkt
.
seq
,
0
);
assert
.
strictEqual
(
pkt
.
acct
,
"90219125916578"
);
assert
.
strictEqual
(
pkt
.
data
.
ademcoId
,
0
);
assert
.
strictEqual
(
pkt
.
data
.
ademcoEvent
,
libademco
.
EVENT_I_AM_WIRE_MACHINE
);
assert
.
strictEqual
(
pkt
.
data
.
gg
,
0
);
assert
.
strictEqual
(
pkt
.
data
.
zone
,
0
);
console
.
log
(
"res=%d, commited=%d"
,
res
,
libademco
.
size_tp_value
(
cb
));
\ No newline at end of file
swig/win_node.bat
0 → 100644
View file @
375d86bf
C:\Users\Jack\Downloads\swigwin-4.1.1\swig.exe -c++ -javascript -node libademco.swig
node-gyp configure build
rem node nodejs-demo.js
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