Commit 8931d61e authored by captainwong's avatar captainwong

release 1.1.0

parent 80489de5
# Ademco Change Log
## 1.1.0
- ADEMCO_PACKET_ACCT_MAX_LEN changed from 64 to 18
- add ADEMCO_PACKET_ACCT_MAX_LEN
- hb_com 读写主机账号命令
## 1.0.0
initial version
...@@ -37,7 +37,8 @@ extern "C" { ...@@ -37,7 +37,8 @@ extern "C" {
#define ADEMCO_OK 0 #define ADEMCO_OK 0
#define ADEMCO_ERR -1 #define ADEMCO_ERR -1
#define ADEMCO_PACKET_ACCT_MAX_LEN 64 // #acct之acct最大长度 #define ADEMCO_PACKET_ACCT_MAX_LEN 18 // #acct之acct最大长度
#define ADEMCO_PACKET_ACCT_MAC_LEN 12 // WiFi主机账号使用MAC地址
#define ADEMCO_PACKET_DATA_SEGMENT_EMPTY_LEN 2 // 空data段[]长度 #define ADEMCO_PACKET_DATA_SEGMENT_EMPTY_LEN 2 // 空data段[]长度
#define ADEMCO_PACKET_DATA_SEGMENT_FULL_LEN 21 // 非空data段长度,acct长度6 #define ADEMCO_PACKET_DATA_SEGMENT_FULL_LEN 21 // 非空data段长度,acct长度6
#define ADEMCO_PACKET_DATA_SEGMENT_FULL_LEN_MAX 64 // 非空data段长度,acct长度未知 #define ADEMCO_PACKET_DATA_SEGMENT_FULL_LEN_MAX 64 // 非空data段长度,acct长度未知
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#define ADEMCO_VERSION_MAJOR 1 #define ADEMCO_VERSION_MAJOR 1
#define ADEMCO_VERSION_MINOR 0 #define ADEMCO_VERSION_MINOR 0
#define ADEMCO_VERSION_PATCH 0 #define ADEMCO_VERSION_PATCH 1
#define ADEMCO_VERSION_IS_RELEASE 1 #define ADEMCO_VERSION_IS_RELEASE 1
#define ADEMCO_VERSION_SUFFIX "" #define ADEMCO_VERSION_SUFFIX ""
......
...@@ -560,8 +560,8 @@ HbComRequestType hbComParseRequest(const uint8_t* data, ...@@ -560,8 +560,8 @@ HbComRequestType hbComParseRequest(const uint8_t* data,
case 0xBA: case 0xBA:
{ {
if (data[2] != 0x3F) { break; } if (data[2] != 0x3F) { break; }
if (len == HbComReq_RD_acct_len && if (len == HbComReq_READ_acct_len &&
memcmp(data, HbComReq_RD_acct_data, len) == 0) { memcmp(data, HbComReq_READ_acct_data, len) == 0) {
copy_data_to_com; copy_data_to_com;
return HbComReq_RD_acct; return HbComReq_RD_acct;
} }
...@@ -581,7 +581,7 @@ HbComRequestType hbComParseRequest(const uint8_t* data, ...@@ -581,7 +581,7 @@ HbComRequestType hbComParseRequest(const uint8_t* data,
} }
} else if (data[3] == 0x0F && } else if (data[3] == 0x0F &&
data[4] == 0x4D && data[4] == 0x4D &&
len == HbComReq_WR_acct_len) { len == HbComReq_WRITE_acct_len) {
if (hbCheckSum(data, len)) { if (hbCheckSum(data, len)) {
copy_data_to_com; copy_data_to_com;
return HbComReq_WR_acct; return HbComReq_WR_acct;
...@@ -760,6 +760,21 @@ HbComResponseType hbComParseResponse(const uint8_t* data, ...@@ -760,6 +760,21 @@ HbComResponseType hbComParseResponse(const uint8_t* data,
} }
} while (0); } while (0);
// 处理读写主机账号回应
do {
if (len >= HbComResp_WRITE_acct_len &&
memcmp(HbComResp_WRITE_acct_data, data, HbComResp_WRITE_acct_len) == 0) {
return HbComResp_WA;
}
if (len >= HbComResp_READ_acct_len &&
memcmp(HbComResp_READ_acct_head, data, sizeof(HbComResp_READ_acct_head) - 1) == 0 &&
hbCheckSum(data, len)) {
copy_data_to_com;
return HbComResp_RA;
}
} while (0);
return HbComResp_Invalid; return HbComResp_Invalid;
} }
...@@ -848,15 +863,15 @@ void hbComMakeReqB0_get3SectionMachineStatus(HbComData* data) { ...@@ -848,15 +863,15 @@ void hbComMakeReqB0_get3SectionMachineStatus(HbComData* data) {
data->len = HbComReq_B0_len; data->len = HbComReq_B0_len;
} }
void hbComMakeReqRD_acct(HbComData* data) { void hbComMakeReqRead_acct(HbComData* data) {
memcpy(data->data, HbComReq_RD_acct_data, HbComReq_RD_acct_len); memcpy(data->data, HbComReq_READ_acct_data, HbComReq_READ_acct_len);
data->len = HbComReq_RD_acct_len; data->len = HbComReq_READ_acct_len;
} }
void hbComMakeReqWR_acct(HbComData* data, const char* acct) { void hbComMakeReqWrite_acct(HbComData* data, const char* acct) {
memcpy(data->data, HbComReq_WR_acct_head, 5); memcpy(data->data, HbComReq_WRITE_acct_head, 5);
ademcoDecStrToHiLoArray(data->data + 5, 9, acct); ademcoDecStrToHiLoArray2(data->data + 5, ADEMCO_PACKET_ACCT_MAX_LEN / 2, acct);
data->len = HbComReq_WR_acct_len; data->len = HbComReq_WRITE_acct_len;
hbSum(data->data, data->len); hbSum(data->data, data->len);
} }
......
...@@ -162,6 +162,8 @@ typedef enum HbComResponseType { ...@@ -162,6 +162,8 @@ typedef enum HbComResponseType {
HbComResp_AD, // 索要防区探头遗失/失联回应 HbComResp_AD, // 索要防区探头遗失/失联回应
HbComResp_AF, // 三区段主机布撤防命令回应 HbComResp_AF, // 三区段主机布撤防命令回应
HbComResp_B1, // 三区段主机状态回应 HbComResp_B1, // 三区段主机状态回应
HbComResp_RA, // 读取主机账号回应
HbComResp_WA, // 写入主机账号回应
HbComResp_Invalid = -1, HbComResp_Invalid = -1,
} HbComResponseType; } HbComResponseType;
...@@ -340,20 +342,20 @@ typedef enum HbCom_3sec_which { ...@@ -340,20 +342,20 @@ typedef enum HbCom_3sec_which {
((((d)[6]) & 0x03) == HbCom_3sec_arm ? HMS_ARM : HMS_DISARM) ((((d)[6]) & 0x03) == HbCom_3sec_arm ? HMS_ARM : HMS_DISARM)
//! 读取主机账号 //! 读取主机账号
#define HbComReq_RD_acct_len 7 #define HbComReq_READ_acct_len 7
#define HbComReq_RD_acct_data "\xEB\xBA\x3F\x07\x00\x4C\x37" #define HbComReq_READ_acct_data "\xEB\xBA\x3F\x07\x00\x4C\x37"
//! 读取主机账号回应 //! 读取主机账号回应
#define HbComResp_RD_acct_len 15 #define HbComResp_READ_acct_len 15
#define HbComResp_RD_acct_head "\xEB\xCB\x3F\x0F\x4C" #define HbComResp_READ_acct_head "\xEB\xCB\x3F\x0F\x4C"
//! 写入主机账号 //! 写入主机账号
#define HbComReq_WR_acct_len 15 #define HbComReq_WRITE_acct_len 15
#define HbComReq_WR_acct_head "\xEB\xCB\x3F\x0F\x4D" #define HbComReq_WRITE_acct_head "\xEB\xCB\x3F\x0F\x4D"
//! 写入主机账号回应(与读取主机账号命令相同) //! 写入主机账号回应(与读取命令相同)
#define HbComResp_WR_acct_len HbComReq_RD_acct_len #define HbComResp_WRITE_acct_len HbComReq_READ_acct_len
#define HbComResp_WR_acct_head HbComReq_WR_acct_head #define HbComResp_WRITE_acct_data HbComReq_READ_acct_data
static const HbZoneProperty hbZoneProperties[12] = { static const HbZoneProperty hbZoneProperties[12] = {
HZP_BUGLAR, HZP_EMERGENCY, HZP_FIRE, HZP_DURESS, HZP_BUGLAR, HZP_EMERGENCY, HZP_FIRE, HZP_DURESS,
...@@ -470,8 +472,8 @@ ADEMCO_EXPORT_SYMBOL void hbComMakeReqAE_set3SectionMachineStatus(HbComData* dat ...@@ -470,8 +472,8 @@ ADEMCO_EXPORT_SYMBOL void hbComMakeReqAE_set3SectionMachineStatus(HbComData* dat
HbCom_3sec_status status); HbCom_3sec_status status);
ADEMCO_EXPORT_SYMBOL void hbComMakeReqB0_get3SectionMachineStatus(HbComData* data); ADEMCO_EXPORT_SYMBOL void hbComMakeReqB0_get3SectionMachineStatus(HbComData* data);
ADEMCO_EXPORT_SYMBOL void hbComMakeReqRD_acct(HbComData* data); ADEMCO_EXPORT_SYMBOL void hbComMakeReqRead_acct(HbComData* data);
ADEMCO_EXPORT_SYMBOL void hbComMakeReqWR_acct(HbComData* data, const char* acct); ADEMCO_EXPORT_SYMBOL void hbComMakeReqWrite_acct(HbComData* data, const char* acct);
ADEMCO_EXPORT_SYMBOL void hbComResp_A2_Iter_init(HbComResp_A2_Iter* iter, ADEMCO_EXPORT_SYMBOL void hbComResp_A2_Iter_init(HbComResp_A2_Iter* iter,
const HbComData* com); const HbComData* com);
......
mkdir com\hb3344\ademco mkdir com\hb3344\ademco
"C:\Users\Jack\Downloads\swigwin-4.0.2\swig.exe" -csharp -namespace com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_csharp_wrap.c libademco.swig "E:\local_program\swig\swigwin-4.1.1\swig.exe" -csharp -namespace com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_csharp_wrap.c libademco.swig
cl -c ../ademco.c ../hb_com.c libademco_csharp_wrap.c -I"../" cl -c ../ademco.c ../hb_com.c libademco_csharp_wrap.c -I"../"
cl -LD ademco.obj hb_com.obj libademco_csharp_wrap.obj -o libademco.dll cl -LD ademco.obj hb_com.obj libademco_csharp_wrap.obj -o libademco.dll
csc CSharpDemo.cs -recurse:com/hb3344/ademco/*.cs csc CSharpDemo.cs -recurse:com/hb3344/ademco/*.cs
......
mkdir com\hb3344\ademco mkdir com\hb3344\ademco
"C:\Users\Jack\Downloads\swigwin-4.0.2\swig.exe" -java -package com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_java_wrap.c libademco.swig "E:\local_program\swig\swigwin-4.1.1\swig.exe" -java -package com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_java_wrap.c libademco.swig
cl -c ../ademco.c ../hb_com.c libademco_java_wrap.c -I"../" -I"%JAVA_HOME%include" -I"%JAVA_HOME%include/win32" cl -c ../ademco.c ../hb_com.c libademco_java_wrap.c -I"../" -I"%JAVA_HOME%include" -I"%JAVA_HOME%include/win32"
cl -LD ademco.obj hb_com.obj libademco_java_wrap.obj -o ademco_java.dll cl -LD ademco.obj hb_com.obj libademco_java_wrap.obj -o ademco_java.dll
javac -encoding utf-8 JavaDemo.java javac -encoding utf-8 JavaDemo.java
......
C:\Users\Jack\Downloads\swigwin-4.1.1\swig.exe -c++ -javascript -node libademco.swig E:\local_program\swig\swigwin-4.1.1\swig.exe -c++ -javascript -node libademco.swig
node-gyp configure build node-gyp configure build
rem node nodejs-demo.js rem node nodejs-demo.js
...@@ -12,4 +12,4 @@ rm -rf win_java ...@@ -12,4 +12,4 @@ rm -rf win_java
rm -rf server_demo rm -rf server_demo
rm -rf win_node rm -rf win_node
cd ../swig cd ../swig
rm -rf *.exp *.lib *.dll *.exe *.obj *.class com/ build/ rm -rf *.exp *.lib *.dll *.exe *.obj *.class com/ build/ *_wrap.c*
...@@ -3,3 +3,4 @@ xcopy /i /s /y G:\dev_libs\ademco\hb\ademco.c ..\ ...@@ -3,3 +3,4 @@ xcopy /i /s /y G:\dev_libs\ademco\hb\ademco.c ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\hb_com.h ..\ xcopy /i /s /y G:\dev_libs\ademco\hb\hb_com.h ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\hb_com.c ..\ xcopy /i /s /y G:\dev_libs\ademco\hb\hb_com.c ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\ademco_version.h ..\ xcopy /i /s /y G:\dev_libs\ademco\hb\ademco_version.h ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\CHANGELOG.md ..\
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment