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
e9111ac9
Commit
e9111ac9
authored
Aug 19, 2022
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
53a597eb
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
10 deletions
+55
-10
ademco.c
ademco.c
+2
-2
ademco.h
ademco.h
+1
-0
hb_com.c
hb_com.c
+44
-7
hb_com.h
hb_com.h
+8
-1
No files found.
ademco.c
View file @
e9111ac9
...
...
@@ -979,7 +979,7 @@ int ademcoHiLoArrayToDecStr(char* str, const uint8_t* arr, int len)
int
ademcoDecStrToHiLoArray
(
uint8_t
*
arr
,
int
len
,
const
char
*
str
)
{
uint8_t
*
p
=
arr
;
int
slen
=
str
len
(
str
)
;
int
slen
=
str
?
strlen
(
str
)
:
0
;
if
(
slen
>
len
*
2
)
{
slen
=
len
*
2
;
}
...
...
@@ -1044,7 +1044,7 @@ int ademcoHexStrToArray(uint8_t* arr, const char* str, uint8_t padding)
{
uint8_t
*
p
=
arr
;
uint8_t
hi
=
0
,
lo
=
0
;
int
slen
=
str
len
(
str
)
;
int
slen
=
str
?
strlen
(
str
)
:
0
;
padding
&=
0x0F
;
for
(
int
i
=
0
;
i
<
slen
/
2
;
i
++
)
{
char
c
=
str
[
i
*
2
];
...
...
ademco.h
View file @
e9111ac9
...
...
@@ -433,6 +433,7 @@ ADEMCO_EXPORT_SYMBOL int ademcoHiLoArrayToDecStr(char* str, const uint8_t* arr,
// 示例:输入字符串"123ABC",返回0
// 示例:输入字符串 "18240888101", len=9, 则arr内容为 0x18 0x24 0x08 0x88 0x10 0x1f 0xff 0xff 0xff, return 9
// 示例:输入字符串 "12345678901234567890", len=9, 则arr内容为 0x18 0x24 0x08 0x88 0x10 0x1f 0xff 0xff 0xff, return 9
// 示例:输入NULL,返回 9个 0xFF
ADEMCO_EXPORT_SYMBOL
int
ademcoDecStrToHiLoArray
(
uint8_t
*
arr
,
int
len
,
const
char
*
str
);
// 将一串字节流转换为可打印形式
...
...
hb_com.c
View file @
e9111ac9
...
...
@@ -226,17 +226,54 @@ int hbZonePropCanReportLost(HbZoneProperty zp)
void
hbInitMachineTimer
(
HbMachineTimer
*
timer
)
{
memset
(
timer
->
data
,
0xFF
,
sizeof
(
timer
));
memset
(
timer
->
data
,
25
,
sizeof
(
timer
));
}
int
hbIsValidTimePoint
(
HbMachineTimePoint
*
tp
)
{
return
tp
&&
0
<=
tp
->
hour
&&
tp
->
hour
<
24
&&
0
<=
tp
->
minute
&&
tp
->
minute
<
60
;
}
void
hbTimePointToGreenwich
(
HbMachineTimePoint
*
tp
)
{
if
(
tp
&&
tp
->
hour
!=
25
)
{
tp
->
hour
=
(
tp
->
hour
+
16
)
%
24
;
}
}
void
hbTimePointFromGreenwich
(
HbMachineTimePoint
*
tp
)
{
if
(
tp
&&
tp
->
hour
!=
25
)
{
tp
->
hour
=
(
tp
->
hour
+
8
)
%
24
;
}
}
int
hbIsValidTimer
(
HbTimer
*
timer
)
{
return
0
<=
timer
->
armAt
.
hour
&&
timer
->
armAt
.
hour
<
24
&&
0
<=
timer
->
armAt
.
minute
&&
timer
->
armAt
.
minute
<
60
&&
0
<=
timer
->
disarmAt
.
hour
&&
timer
->
disarmAt
.
hour
<
24
&&
0
<=
timer
->
disarmAt
.
minute
&&
timer
->
disarmAt
.
minute
<
60
;
return
timer
&&
hbIsValidTimePoint
(
&
timer
->
armAt
)
&&
hbIsValidTimePoint
(
&
timer
->
disarmAt
);
}
int
hbIsValidMachineTimer
(
HbMachineTimer
*
timer
)
{
return
timer
&&
hbIsValidTimer
(
&
timer
->
timer
[
0
])
&&
hbIsValidTimer
(
&
timer
->
timer
[
1
]);
}
void
hbMachineTimerToGreenwich
(
HbMachineTimer
*
timer
)
{
hbTimePointToGreenwich
(
&
timer
->
timer
[
0
].
armAt
);
hbTimePointToGreenwich
(
&
timer
->
timer
[
0
].
disarmAt
);
hbTimePointToGreenwich
(
&
timer
->
timer
[
1
].
armAt
);
hbTimePointToGreenwich
(
&
timer
->
timer
[
1
].
disarmAt
);
}
void
hbMachineTimerFromGreenwich
(
HbMachineTimer
*
timer
)
{
hbTimePointFromGreenwich
(
&
timer
->
timer
[
0
].
armAt
);
hbTimePointFromGreenwich
(
&
timer
->
timer
[
0
].
disarmAt
);
hbTimePointFromGreenwich
(
&
timer
->
timer
[
1
].
armAt
);
hbTimePointFromGreenwich
(
&
timer
->
timer
[
1
].
disarmAt
);
}
AdemcoEvent
hbMachineStatusToAdemcoEvent
(
HbMachineStatus
status
)
{
...
...
@@ -445,7 +482,7 @@ int hbCheckSum(const uint8_t* data, int len)
uint8_t
sum
=
0
;
const
uint8_t
*
p
=
data
;
while
(
p
!=
data
+
len
-
1
)
{
sum
+=
*
p
;
sum
+=
*
p
++
;
}
return
sum
==
*
p
;
}
...
...
@@ -775,7 +812,7 @@ void hbComMakeRespA4_modifyMachineZone(HbComData* data, AdemcoZone zone, HbZoneP
void
hbComMakeRespA6_getMachineTimer
(
HbComData
*
data
,
HbMachineTimer
*
timer
)
{
memcpy
(
data
->
data
,
HbComResp_A6_head
,
6
);
memcpy
(
data
->
data
+
6
,
timer
,
sizeof
(
*
timer
));
memcpy
(
data
->
data
+
6
,
timer
->
data
,
sizeof
(
*
timer
));
data
->
len
=
HbComResp_A6_len
;
hbSum
(
data
->
data
,
data
->
len
);
}
...
...
hb_com.h
View file @
e9111ac9
...
...
@@ -228,6 +228,7 @@ typedef enum HbComResp_A4_p3 {
//! 设置主机定时器 EB CB 3F 0E A7 H1 M1 H2 M2 H3 M3 H4 M4 SUM
#define HbComReq_A7_len 14
#define HbComReq_A7_head "\xEB\xCB\x3F\x0E\xA7"
#define hbComResq_A7_to_timer(a7, timer) memcpy((timer)->data, (a7) + 5, 8);
//! 设置主机定时器回应 EB BA 3F 07 P0 A7 SUM
#define HbComResp_A7_len 7
...
...
@@ -359,7 +360,14 @@ ADEMCO_EXPORT_SYMBOL int hbMachineCanLinkSubMachine(HbMachineType type);
//! 失联报告是主机侧实现的跟防区属性没关系,但是人为限制了只有以下属性的才可以设置
ADEMCO_EXPORT_SYMBOL
int
hbZonePropCanReportLost
(
HbZoneProperty
zp
);
ADEMCO_EXPORT_SYMBOL
void
hbInitMachineTimer
(
HbMachineTimer
*
timer
);
ADEMCO_EXPORT_SYMBOL
int
hbIsValidTimePoint
(
HbMachineTimePoint
*
tp
);
ADEMCO_EXPORT_SYMBOL
void
hbTimePointToGreenwich
(
HbMachineTimePoint
*
tp
);
ADEMCO_EXPORT_SYMBOL
void
hbTimePointFromGreenwich
(
HbMachineTimePoint
*
tp
);
ADEMCO_EXPORT_SYMBOL
int
hbIsValidTimer
(
HbTimer
*
timer
);
ADEMCO_EXPORT_SYMBOL
int
hbIsValidMachineTimer
(
HbMachineTimer
*
timer
);
//! 传输的是格林威治时间
ADEMCO_EXPORT_SYMBOL
void
hbMachineTimerToGreenwich
(
HbMachineTimer
*
timer
);
ADEMCO_EXPORT_SYMBOL
void
hbMachineTimerFromGreenwich
(
HbMachineTimer
*
timer
);
ADEMCO_EXPORT_SYMBOL
AdemcoEvent
hbMachineStatusToAdemcoEvent
(
HbMachineStatus
status
);
ADEMCO_EXPORT_SYMBOL
HbMachineStatus
hbMachineStatusFromAdemcoEvent
(
AdemcoEvent
ademcoEvent
);
ADEMCO_EXPORT_SYMBOL
AdemcoEvent
hbMachineTypeToAdemcoEvent
(
HbMachineType
type
);
...
...
@@ -378,7 +386,6 @@ ADEMCO_EXPORT_SYMBOL void hbSum(uint8_t* data, int len);
// 校验和是否正确, return 0 for incorrect, otherwise correct
ADEMCO_EXPORT_SYMBOL
int
hbCheckSum
(
const
uint8_t
*
data
,
int
len
);
ADEMCO_EXPORT_SYMBOL
HbComRequestType
hbComParseRequest
(
const
uint8_t
*
buff
,
int
len
);
ADEMCO_EXPORT_SYMBOL
HbComRequestType
hbComParseXDataRequest
(
const
AdemcoXDataSegment
*
xdata
);
ADEMCO_EXPORT_SYMBOL
HbComResponseType
hbComParseResponse
(
const
uint8_t
*
buff
,
int
len
);
...
...
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