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" {
#define ADEMCO_OK 0
#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_FULL_LEN 21 // 非空data段长度,acct长度6
#define ADEMCO_PACKET_DATA_SEGMENT_FULL_LEN_MAX 64 // 非空data段长度,acct长度未知
......
......@@ -8,7 +8,7 @@
#define ADEMCO_VERSION_MAJOR 1
#define ADEMCO_VERSION_MINOR 0
#define ADEMCO_VERSION_PATCH 0
#define ADEMCO_VERSION_PATCH 1
#define ADEMCO_VERSION_IS_RELEASE 1
#define ADEMCO_VERSION_SUFFIX ""
......
......@@ -560,8 +560,8 @@ HbComRequestType hbComParseRequest(const uint8_t* data,
case 0xBA:
{
if (data[2] != 0x3F) { break; }
if (len == HbComReq_RD_acct_len &&
memcmp(data, HbComReq_RD_acct_data, len) == 0) {
if (len == HbComReq_READ_acct_len &&
memcmp(data, HbComReq_READ_acct_data, len) == 0) {
copy_data_to_com;
return HbComReq_RD_acct;
}
......@@ -581,7 +581,7 @@ HbComRequestType hbComParseRequest(const uint8_t* data,
}
} else if (data[3] == 0x0F &&
data[4] == 0x4D &&
len == HbComReq_WR_acct_len) {
len == HbComReq_WRITE_acct_len) {
if (hbCheckSum(data, len)) {
copy_data_to_com;
return HbComReq_WR_acct;
......@@ -760,6 +760,21 @@ HbComResponseType hbComParseResponse(const uint8_t* data,
}
} 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;
}
......@@ -848,15 +863,15 @@ void hbComMakeReqB0_get3SectionMachineStatus(HbComData* data) {
data->len = HbComReq_B0_len;
}
void hbComMakeReqRD_acct(HbComData* data) {
memcpy(data->data, HbComReq_RD_acct_data, HbComReq_RD_acct_len);
data->len = HbComReq_RD_acct_len;
void hbComMakeReqRead_acct(HbComData* data) {
memcpy(data->data, HbComReq_READ_acct_data, HbComReq_READ_acct_len);
data->len = HbComReq_READ_acct_len;
}
void hbComMakeReqWR_acct(HbComData* data, const char* acct) {
memcpy(data->data, HbComReq_WR_acct_head, 5);
ademcoDecStrToHiLoArray(data->data + 5, 9, acct);
data->len = HbComReq_WR_acct_len;
void hbComMakeReqWrite_acct(HbComData* data, const char* acct) {
memcpy(data->data, HbComReq_WRITE_acct_head, 5);
ademcoDecStrToHiLoArray2(data->data + 5, ADEMCO_PACKET_ACCT_MAX_LEN / 2, acct);
data->len = HbComReq_WRITE_acct_len;
hbSum(data->data, data->len);
}
......
......@@ -162,6 +162,8 @@ typedef enum HbComResponseType {
HbComResp_AD, // 索要防区探头遗失/失联回应
HbComResp_AF, // 三区段主机布撤防命令回应
HbComResp_B1, // 三区段主机状态回应
HbComResp_RA, // 读取主机账号回应
HbComResp_WA, // 写入主机账号回应
HbComResp_Invalid = -1,
} HbComResponseType;
......@@ -340,20 +342,20 @@ typedef enum HbCom_3sec_which {
((((d)[6]) & 0x03) == HbCom_3sec_arm ? HMS_ARM : HMS_DISARM)
//! 读取主机账号
#define HbComReq_RD_acct_len 7
#define HbComReq_RD_acct_data "\xEB\xBA\x3F\x07\x00\x4C\x37"
#define HbComReq_READ_acct_len 7
#define HbComReq_READ_acct_data "\xEB\xBA\x3F\x07\x00\x4C\x37"
//! 读取主机账号回应
#define HbComResp_RD_acct_len 15
#define HbComResp_RD_acct_head "\xEB\xCB\x3F\x0F\x4C"
#define HbComResp_READ_acct_len 15
#define HbComResp_READ_acct_head "\xEB\xCB\x3F\x0F\x4C"
//! 写入主机账号
#define HbComReq_WR_acct_len 15
#define HbComReq_WR_acct_head "\xEB\xCB\x3F\x0F\x4D"
#define HbComReq_WRITE_acct_len 15
#define HbComReq_WRITE_acct_head "\xEB\xCB\x3F\x0F\x4D"
//! 写入主机账号回应(与读取主机账号命令相同)
#define HbComResp_WR_acct_len HbComReq_RD_acct_len
#define HbComResp_WR_acct_head HbComReq_WR_acct_head
//! 写入主机账号回应(与读取命令相同)
#define HbComResp_WRITE_acct_len HbComReq_READ_acct_len
#define HbComResp_WRITE_acct_data HbComReq_READ_acct_data
static const HbZoneProperty hbZoneProperties[12] = {
HZP_BUGLAR, HZP_EMERGENCY, HZP_FIRE, HZP_DURESS,
......@@ -470,8 +472,8 @@ ADEMCO_EXPORT_SYMBOL void hbComMakeReqAE_set3SectionMachineStatus(HbComData* dat
HbCom_3sec_status status);
ADEMCO_EXPORT_SYMBOL void hbComMakeReqB0_get3SectionMachineStatus(HbComData* data);
ADEMCO_EXPORT_SYMBOL void hbComMakeReqRD_acct(HbComData* data);
ADEMCO_EXPORT_SYMBOL void hbComMakeReqWR_acct(HbComData* data, const char* acct);
ADEMCO_EXPORT_SYMBOL void hbComMakeReqRead_acct(HbComData* data);
ADEMCO_EXPORT_SYMBOL void hbComMakeReqWrite_acct(HbComData* data, const char* acct);
ADEMCO_EXPORT_SYMBOL void hbComResp_A2_Iter_init(HbComResp_A2_Iter* iter,
const HbComData* com);
......
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 -LD ademco.obj hb_com.obj libademco_csharp_wrap.obj -o libademco.dll
csc CSharpDemo.cs -recurse:com/hb3344/ademco/*.cs
......
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 -LD ademco.obj hb_com.obj libademco_java_wrap.obj -o ademco_java.dll
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
rem node nodejs-demo.js
......@@ -12,4 +12,4 @@ rm -rf win_java
rm -rf server_demo
rm -rf win_node
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 ..\
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\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