Commit 759aba27 authored by captainwong's avatar captainwong

fix 'char_t' conflict with spdlog

parent e700857e
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#define dline dprintf("%s %d\n", __FILE__, __LINE__); #define dline dprintf("%s %d\n", __FILE__, __LINE__);
#define dmsg dline; dprintf #define dmsg dline; dprintf
void ademcoPrint(const char_t* p, size_t len) void ademcoPrint(const ademco_char_t* p, size_t len)
{ {
while (len--) { while (len--) {
if (isprint(*(const uint8_t*)p)) { if (isprint(*(const uint8_t*)p)) {
...@@ -334,7 +334,7 @@ static const uint16_t crc16Table[256] = { ...@@ -334,7 +334,7 @@ static const uint16_t crc16Table[256] = {
0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040,
}; };
uint16_t ademcoCRC16(const char_t* buff, size_t len) uint16_t ademcoCRC16(const ademco_char_t* buff, size_t len)
{ {
uint16_t crc = 0; uint16_t crc = 0;
while (len--) { while (len--) {
...@@ -343,7 +343,7 @@ uint16_t ademcoCRC16(const char_t* buff, size_t len) ...@@ -343,7 +343,7 @@ uint16_t ademcoCRC16(const char_t* buff, size_t len)
return crc; return crc;
} }
size_t ademcoAppendDataSegment(char_t* buff, AdemcoId ademcoId, AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone) size_t ademcoAppendDataSegment(ademco_char_t* buff, AdemcoId ademcoId, AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone)
{ {
char* p = (char*)buff; char* p = (char*)buff;
if (ademcoEvent == EVENT_INVALID_EVENT) { if (ademcoEvent == EVENT_INVALID_EVENT) {
...@@ -399,7 +399,7 @@ size_t ademcoAppendDataSegment2(AdemcoDataSegment* dataSegment, AdemcoId ademcoI ...@@ -399,7 +399,7 @@ size_t ademcoAppendDataSegment2(AdemcoDataSegment* dataSegment, AdemcoId ademcoI
return dataSegment->raw_len = ademcoAppendDataSegment(dataSegment->raw, ademcoId, ademcoEvent, gg, zone); return dataSegment->raw_len = ademcoAppendDataSegment(dataSegment->raw, ademcoId, ademcoEvent, gg, zone);
} }
AdemcoParseResult ademcoParseDataSegment(const char_t* packet, size_t packet_len, AdemcoDataSegment* dataSegment) AdemcoParseResult ademcoParseDataSegment(const ademco_char_t* packet, size_t packet_len, AdemcoDataSegment* dataSegment)
{ {
if (packet_len == ADEMCO_PACKET_DATA_SEGMENT_EMPTY_LEN && packet[0] == '[' && packet[1] == ']') { if (packet_len == ADEMCO_PACKET_DATA_SEGMENT_EMPTY_LEN && packet[0] == '[' && packet[1] == ']') {
memset(dataSegment, 0, sizeof(*dataSegment)); memset(dataSegment, 0, sizeof(*dataSegment));
...@@ -452,7 +452,7 @@ AdemcoParseResult ademcoParseDataSegment(const char_t* packet, size_t packet_len ...@@ -452,7 +452,7 @@ AdemcoParseResult ademcoParseDataSegment(const char_t* packet, size_t packet_len
return RESULT_ERROR; return RESULT_ERROR;
} }
size_t ademcoDataSegmentToCongwinFe100(char_t* fe100, const AdemcoDataSegment* dataSegment) size_t ademcoDataSegmentToCongwinFe100(ademco_char_t* fe100, const AdemcoDataSegment* dataSegment)
{ {
if (dataSegment->raw_len == ADEMCO_PACKET_DATA_SEGMENT_EMPTY_LEN) { if (dataSegment->raw_len == ADEMCO_PACKET_DATA_SEGMENT_EMPTY_LEN) {
return 0; return 0;
...@@ -584,7 +584,7 @@ size_t ademcoXDataCopy(AdemcoXDataSegment* dst, const AdemcoXDataSegment* src) ...@@ -584,7 +584,7 @@ size_t ademcoXDataCopy(AdemcoXDataSegment* dst, const AdemcoXDataSegment* src)
return 0; return 0;
} }
int ademcoMakeXData(AdemcoXDataSegment* xdata, AdemcoXDataLengthFormat xlf, AdemcoXDataTransform xtr, const char_t* content, size_t len) int ademcoMakeXData(AdemcoXDataSegment* xdata, AdemcoXDataLengthFormat xlf, AdemcoXDataTransform xtr, const ademco_char_t* content, size_t len)
{ {
char transformed[ADEMCO_PACKET_XDATA_MAX_LEN]; char transformed[ADEMCO_PACKET_XDATA_MAX_LEN];
size_t translen; size_t translen;
...@@ -603,7 +603,7 @@ int ademcoMakeXData(AdemcoXDataSegment* xdata, AdemcoXDataLengthFormat xlf, Adem ...@@ -603,7 +603,7 @@ int ademcoMakeXData(AdemcoXDataSegment* xdata, AdemcoXDataLengthFormat xlf, Adem
xdata->lenghFormat = xlf; xdata->lenghFormat = xlf;
if (xlf == TWO_HEX && translen + 4 < ADEMCO_PACKET_XDATA_MAX_LEN) { if (xlf == TWO_HEX && translen + 4 < ADEMCO_PACKET_XDATA_MAX_LEN) {
char_t* p = xdata->raw; ademco_char_t* p = xdata->raw;
*p++ = '['; *p++ = '[';
*p++ = (translen & 0xFFFF) >> 8; *p++ = (translen & 0xFFFF) >> 8;
*p++ = (translen & 0xFFFF) & 0xFF; *p++ = (translen & 0xFFFF) & 0xFF;
...@@ -613,7 +613,7 @@ int ademcoMakeXData(AdemcoXDataSegment* xdata, AdemcoXDataLengthFormat xlf, Adem ...@@ -613,7 +613,7 @@ int ademcoMakeXData(AdemcoXDataSegment* xdata, AdemcoXDataLengthFormat xlf, Adem
xdata->raw_len = p - xdata->raw; xdata->raw_len = p - xdata->raw;
return ADEMCO_OK; return ADEMCO_OK;
} else if (xlf == FOUR_DECIMAL && translen + 6 < ADEMCO_PACKET_XDATA_MAX_LEN) { } else if (xlf == FOUR_DECIMAL && translen + 6 < ADEMCO_PACKET_XDATA_MAX_LEN) {
char_t* p = xdata->raw; ademco_char_t* p = xdata->raw;
*p++ = '['; *p++ = '[';
char temp[5]; char temp[5];
snprintf(temp, sizeof(temp), "%04zX", translen & 0xFFFF); snprintf(temp, sizeof(temp), "%04zX", translen & 0xFFFF);
...@@ -674,7 +674,7 @@ static void getNowTimestamp(char* buff) ...@@ -674,7 +674,7 @@ static void getNowTimestamp(char* buff)
tm->tm_mon + 1, tm->tm_mday, tm->tm_year + 1900); tm->tm_mon + 1, tm->tm_mday, tm->tm_year + 1900);
} }
size_t ademcoMakeEmptyDataPacket(char_t* dst_buff, size_t len, const char* id, uint16_t seq, const char* acct, AdemcoId ademcoId) size_t ademcoMakeEmptyDataPacket(ademco_char_t* dst_buff, size_t len, const char* id, uint16_t seq, const char* acct, AdemcoId ademcoId)
{ {
uint8_t buff[ADEMCO_PACKET_MAX_LEN]; uint8_t buff[ADEMCO_PACKET_MAX_LEN];
uint8_t* p = buff; uint8_t* p = buff;
...@@ -724,22 +724,22 @@ size_t ademcoMakeEmptyDataPacket(char_t* dst_buff, size_t len, const char* id, u ...@@ -724,22 +724,22 @@ size_t ademcoMakeEmptyDataPacket(char_t* dst_buff, size_t len, const char* id, u
} }
} }
size_t ademcoMakeNullPacket(char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId) size_t ademcoMakeNullPacket(ademco_char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId)
{ {
return ademcoMakeEmptyDataPacket(buff, len, ADEMCO_PACKET_ID_NULL, seq, acct, ademcoId); return ademcoMakeEmptyDataPacket(buff, len, ADEMCO_PACKET_ID_NULL, seq, acct, ademcoId);
} }
size_t ademcoMakeAckPacket(char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId) size_t ademcoMakeAckPacket(ademco_char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId)
{ {
return ademcoMakeEmptyDataPacket(buff, len, ADEMCO_PACKET_ID_ACK, seq, acct, ademcoId); return ademcoMakeEmptyDataPacket(buff, len, ADEMCO_PACKET_ID_ACK, seq, acct, ademcoId);
} }
size_t ademcoMakeNakPacket(char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId) size_t ademcoMakeNakPacket(ademco_char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId)
{ {
return ademcoMakeEmptyDataPacket(buff, len, ADEMCO_PACKET_ID_NAK, seq, acct, ademcoId); return ademcoMakeEmptyDataPacket(buff, len, ADEMCO_PACKET_ID_NAK, seq, acct, ademcoId);
} }
size_t ademcoMakeHbPacket(char_t* dst_buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId, size_t ademcoMakeHbPacket(ademco_char_t* dst_buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId,
AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone, const AdemcoXDataSegment* xdata) AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone, const AdemcoXDataSegment* xdata)
{ {
char buff[ADEMCO_PACKET_MAX_LEN]; char buff[ADEMCO_PACKET_MAX_LEN];
...@@ -846,7 +846,7 @@ size_t ademcoMakeHbPacket2(AdemcoPacket* pkt, uint16_t seq, const char* acct, Ad ...@@ -846,7 +846,7 @@ size_t ademcoMakeHbPacket2(AdemcoPacket* pkt, uint16_t seq, const char* acct, Ad
return pkt->raw_len = ademcoMakeHbPacket(pkt->raw, sizeof(pkt->raw), seq, acct, ademcoId, ademcoEvent, gg, zone, xdata); return pkt->raw_len = ademcoMakeHbPacket(pkt->raw, sizeof(pkt->raw), seq, acct, ademcoId, ademcoEvent, gg, zone, xdata);
} }
AdemcoParseResult ademcoPacketParse(const char_t* buff, size_t len, AdemcoPacket* pkt, size_t* cb_commited) AdemcoParseResult ademcoPacketParse(const ademco_char_t* buff, size_t len, AdemcoPacket* pkt, size_t* cb_commited)
{ {
if (len < 9) { return RESULT_NOT_ENOUGH; } if (len < 9) { return RESULT_NOT_ENOUGH; }
do{ do{
...@@ -1006,7 +1006,7 @@ AdemcoParseResult ademcoPacketParse(const char_t* buff, size_t len, AdemcoPacket ...@@ -1006,7 +1006,7 @@ AdemcoParseResult ademcoPacketParse(const char_t* buff, size_t len, AdemcoPacket
return RESULT_ERROR; return RESULT_ERROR;
} }
size_t ademcoHiLoArrayToDecStr(char_t* str, const uint8_t* arr, size_t len) size_t ademcoHiLoArrayToDecStr(ademco_char_t* str, const uint8_t* arr, size_t len)
{ {
char* p = str; char* p = str;
for (size_t i = 0; i < len; i++) { for (size_t i = 0; i < len; i++) {
......
...@@ -36,9 +36,9 @@ extern "C" { ...@@ -36,9 +36,9 @@ extern "C" {
#endif #endif
#ifdef SWIG #ifdef SWIG
#define char_t uint8_t #define ademco_char_t uint8_t
#else #else
#define char_t char #define ademco_char_t char
#endif #endif
#define ADEMCO_OK 0 #define ADEMCO_OK 0
...@@ -287,7 +287,7 @@ typedef enum AdemcoParseResult { ...@@ -287,7 +287,7 @@ typedef enum AdemcoParseResult {
// 安定宝协议data段 // 安定宝协议data段
typedef struct AdemcoDataSegment { typedef struct AdemcoDataSegment {
char_t raw[ADEMCO_PACKET_DATA_SEGMENT_FULL_LEN_MAX]; ademco_char_t raw[ADEMCO_PACKET_DATA_SEGMENT_FULL_LEN_MAX];
size_t raw_len; size_t raw_len;
AdemcoId ademcoId; AdemcoId ademcoId;
AdemcoEvent ademcoEvent; AdemcoEvent ademcoEvent;
...@@ -307,7 +307,7 @@ typedef enum AdemcoXDataTransform { ...@@ -307,7 +307,7 @@ typedef enum AdemcoXDataTransform {
typedef struct AdemcoXDataSegment { typedef struct AdemcoXDataSegment {
AdemcoXDataLengthFormat lenghFormat; AdemcoXDataLengthFormat lenghFormat;
char_t raw[ADEMCO_PACKET_XDATA_MAX_LEN]; ademco_char_t raw[ADEMCO_PACKET_XDATA_MAX_LEN];
size_t raw_len; size_t raw_len;
}AdemcoXDataSegment; }AdemcoXDataSegment;
...@@ -349,7 +349,7 @@ typedef struct AdemcoPacket { ...@@ -349,7 +349,7 @@ typedef struct AdemcoPacket {
AdemcoXDataSegment xdata; AdemcoXDataSegment xdata;
time_t timestamp; time_t timestamp;
char_t raw[ADEMCO_PACKET_MAX_LEN]; ademco_char_t raw[ADEMCO_PACKET_MAX_LEN];
size_t raw_len; size_t raw_len;
}AdemcoPacket; }AdemcoPacket;
...@@ -357,7 +357,7 @@ typedef struct AdemcoPacket { ...@@ -357,7 +357,7 @@ typedef struct AdemcoPacket {
//////////////////////// Functions //////////////////////// //////////////////////// Functions ////////////////////////
//! print as HEX //! print as HEX
ADEMCO_EXPORT_SYMBOL void ademcoPrint(const char_t* buff, size_t len); ADEMCO_EXPORT_SYMBOL void ademcoPrint(const ademco_char_t* buff, size_t len);
//////////////////////// AdemcoEvent functions //////////////////////// //////////////////////// AdemcoEvent functions ////////////////////////
...@@ -379,13 +379,13 @@ ADEMCO_EXPORT_SYMBOL const char* ademcoEventToStringChinese(AdemcoEvent ademcoEv ...@@ -379,13 +379,13 @@ ADEMCO_EXPORT_SYMBOL const char* ademcoEventToStringChinese(AdemcoEvent ademcoEv
//////////////////////// AdemcoDataSegment functions //////////////////////// //////////////////////// AdemcoDataSegment functions ////////////////////////
//! make a `DATA` packet and store to `packet`, return length //! make a `DATA` packet and store to `packet`, return length
ADEMCO_EXPORT_SYMBOL size_t ademcoAppendDataSegment(char_t* packet, AdemcoId ademcoId, AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone); ADEMCO_EXPORT_SYMBOL size_t ademcoAppendDataSegment(ademco_char_t* packet, AdemcoId ademcoId, AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone);
//! make a `DATA` packet and store to `dataSegment`, return length //! make a `DATA` packet and store to `dataSegment`, return length
ADEMCO_EXPORT_SYMBOL size_t ademcoAppendDataSegment2(AdemcoDataSegment* dataSegment, AdemcoId ademcoId, AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone); ADEMCO_EXPORT_SYMBOL size_t ademcoAppendDataSegment2(AdemcoDataSegment* dataSegment, AdemcoId ademcoId, AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone);
//! parse `DATA` packet, if ok, `dataSegment`'s members will be useful //! parse `DATA` packet, if ok, `dataSegment`'s members will be useful
ADEMCO_EXPORT_SYMBOL AdemcoParseResult ademcoParseDataSegment(const char_t* packet, size_t packet_len, AdemcoDataSegment* dataSegment); ADEMCO_EXPORT_SYMBOL AdemcoParseResult ademcoParseDataSegment(const ademco_char_t* packet, size_t packet_len, AdemcoDataSegment* dataSegment);
// return 0 for empty packet, CONGWIN_FE100_PACKET_LEN for success // return 0 for empty packet, CONGWIN_FE100_PACKET_LEN for success
ADEMCO_EXPORT_SYMBOL size_t ademcoDataSegmentToCongwinFe100(char_t* fe100, const AdemcoDataSegment* dataSegment); ADEMCO_EXPORT_SYMBOL size_t ademcoDataSegmentToCongwinFe100(ademco_char_t* fe100, const AdemcoDataSegment* dataSegment);
//////////////////////// AdemcoXDataSegment functions //////////////////////// //////////////////////// AdemcoXDataSegment functions ////////////////////////
...@@ -405,7 +405,7 @@ ADEMCO_EXPORT_SYMBOL int ademcoXDataMemcmp(const AdemcoXDataSegment* xdata, cons ...@@ -405,7 +405,7 @@ ADEMCO_EXPORT_SYMBOL int ademcoXDataMemcmp(const AdemcoXDataSegment* xdata, cons
// copy xdata content from src to dst, return copied length = src.raw_len // copy xdata content from src to dst, return copied length = src.raw_len
ADEMCO_EXPORT_SYMBOL size_t ademcoXDataCopy(AdemcoXDataSegment* dst, const AdemcoXDataSegment* src); ADEMCO_EXPORT_SYMBOL size_t ademcoXDataCopy(AdemcoXDataSegment* dst, const AdemcoXDataSegment* src);
// return ADEMCO_OK for success, return ADEMCO_ERR for len is too long // return ADEMCO_OK for success, return ADEMCO_ERR for len is too long
ADEMCO_EXPORT_SYMBOL int ademcoMakeXData(AdemcoXDataSegment* xdata, AdemcoXDataLengthFormat xlf, AdemcoXDataTransform xtr, const char_t* content, size_t len); ADEMCO_EXPORT_SYMBOL int ademcoMakeXData(AdemcoXDataSegment* xdata, AdemcoXDataLengthFormat xlf, AdemcoXDataTransform xtr, const ademco_char_t* content, size_t len);
//////////////////////// AdemcoPacketId functions //////////////////////// //////////////////////// AdemcoPacketId functions ////////////////////////
...@@ -420,11 +420,11 @@ ADEMCO_EXPORT_SYMBOL const char* admecoPacketIdToString(AdemcoPacketId id); ...@@ -420,11 +420,11 @@ ADEMCO_EXPORT_SYMBOL const char* admecoPacketIdToString(AdemcoPacketId id);
* otherwise return 0 * otherwise return 0
*/ */
ADEMCO_EXPORT_SYMBOL size_t ademcoMakeEmptyDataPacket(char_t* dst_buff, size_t len, const char* id, uint16_t seq, const char* acct, AdemcoId ademcoId); ADEMCO_EXPORT_SYMBOL size_t ademcoMakeEmptyDataPacket(ademco_char_t* dst_buff, size_t len, const char* id, uint16_t seq, const char* acct, AdemcoId ademcoId);
ADEMCO_EXPORT_SYMBOL size_t ademcoMakeNullPacket(char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId); ADEMCO_EXPORT_SYMBOL size_t ademcoMakeNullPacket(ademco_char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId);
ADEMCO_EXPORT_SYMBOL size_t ademcoMakeAckPacket(char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId); ADEMCO_EXPORT_SYMBOL size_t ademcoMakeAckPacket(ademco_char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId);
ADEMCO_EXPORT_SYMBOL size_t ademcoMakeNakPacket(char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId); ADEMCO_EXPORT_SYMBOL size_t ademcoMakeNakPacket(ademco_char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId);
ADEMCO_EXPORT_SYMBOL size_t ademcoMakeHbPacket(char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId, ADEMCO_EXPORT_SYMBOL size_t ademcoMakeHbPacket(ademco_char_t* buff, size_t len, uint16_t seq, const char* acct, AdemcoId ademcoId,
AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone, const AdemcoXDataSegment* xdata); AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone, const AdemcoXDataSegment* xdata);
// like upper funcs, store buff and len to pkt->raw, pkt->raw_len // like upper funcs, store buff and len to pkt->raw, pkt->raw_len
...@@ -435,7 +435,7 @@ ADEMCO_EXPORT_SYMBOL size_t ademcoMakeHbPacket2(AdemcoPacket* pkt, uint16_t seq, ...@@ -435,7 +435,7 @@ ADEMCO_EXPORT_SYMBOL size_t ademcoMakeHbPacket2(AdemcoPacket* pkt, uint16_t seq,
AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone, const AdemcoXDataSegment* xdata); AdemcoEvent ademcoEvent, AdemcoGG gg, AdemcoZone zone, const AdemcoXDataSegment* xdata);
//! parse a ademco packet, if everything is OK, cb_commited is the packet length //! parse a ademco packet, if everything is OK, cb_commited is the packet length
ADEMCO_EXPORT_SYMBOL AdemcoParseResult ademcoPacketParse(const char_t* buff, size_t len, AdemcoPacket* pkt, size_t* cb_commited); ADEMCO_EXPORT_SYMBOL AdemcoParseResult ademcoPacketParse(const ademco_char_t* buff, size_t len, AdemcoPacket* pkt, size_t* cb_commited);
/* CRC16 implementation according to ARC /* CRC16 implementation according to ARC
* Name : CRC-16/ARC * Name : CRC-16/ARC
...@@ -448,7 +448,7 @@ ADEMCO_EXPORT_SYMBOL AdemcoParseResult ademcoPacketParse(const char_t* buff, siz ...@@ -448,7 +448,7 @@ ADEMCO_EXPORT_SYMBOL AdemcoParseResult ademcoPacketParse(const char_t* buff, siz
* Xor constant to output CRC : 0x0000 * Xor constant to output CRC : 0x0000
* Output for "123456789" : 0xBB3D * Output for "123456789" : 0xBB3D
*/ */
ADEMCO_EXPORT_SYMBOL uint16_t ademcoCRC16(const char_t* buff, size_t len); ADEMCO_EXPORT_SYMBOL uint16_t ademcoCRC16(const ademco_char_t* buff, size_t len);
// 将一串以高低字节表示的十六进制数组转换为10进制数字符串 // 将一串以高低字节表示的十六进制数组转换为10进制数字符串
// 每个字节的高四位和低四位若不大于9,将该四位表示的数字以10进制ascii码填入str,否则停止 // 每个字节的高四位和低四位若不大于9,将该四位表示的数字以10进制ascii码填入str,否则停止
...@@ -456,7 +456,7 @@ ADEMCO_EXPORT_SYMBOL uint16_t ademcoCRC16(const char_t* buff, size_t len); ...@@ -456,7 +456,7 @@ ADEMCO_EXPORT_SYMBOL uint16_t ademcoCRC16(const char_t* buff, size_t len);
// 注意:函数不会在str末尾补 null terminator // 注意:函数不会在str末尾补 null terminator
// 调用者应确保str有足够空间,至少len的2倍,否则会崩溃 // 调用者应确保str有足够空间,至少len的2倍,否则会崩溃
// 示例:输入数组:0x18 0x24 0x08 0x88 0x10 0x1f 0xff,输出字符串"18240888101" // 示例:输入数组:0x18 0x24 0x08 0x88 0x10 0x1f 0xff,输出字符串"18240888101"
ADEMCO_EXPORT_SYMBOL size_t ademcoHiLoArrayToDecStr(char_t* str, const uint8_t* arr, size_t len); ADEMCO_EXPORT_SYMBOL size_t ademcoHiLoArrayToDecStr(ademco_char_t* str, const uint8_t* arr, size_t len);
// 将一个10进制数字符串转为高低字节表示的数组,节省空间 // 将一个10进制数字符串转为高低字节表示的数组,节省空间
// str应只包含'0'~'9',否则失败返回0 // str应只包含'0'~'9',否则失败返回0
......
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