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
aeac7bf6
Commit
aeac7bf6
authored
Sep 24, 2020
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
fd3f2b36
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
2 deletions
+26
-2
bench_client_ex.cpp
examples/bench_client_ex/bench_client_ex.cpp
+25
-1
server_demo_libevent.cpp
examples/server_demo_libevent/server_demo_libevent.cpp
+1
-1
No files found.
examples/bench_client_ex/bench_client_ex.cpp
View file @
aeac7bf6
...
...
@@ -157,6 +157,16 @@ void handle_ademco_msg(Session* session, bufferevent* bev)
}
char
buf
[
1024
];
auto
output
=
bufferevent_get_output
(
bev
);
auto
ack
=
[
&
]()
{
AdemcoPacket
pkt
;
auto
n
=
pkt
.
make_ack
(
buf
,
sizeof
(
buf
),
session
->
packet
.
seq_
.
value_
,
session
->
acct
,
session
->
ademco_id
);
if
(
print_data
)
{
printf
(
"T#%d C#%d send:%s
\n
"
,
session
->
thread_id
,
session
->
id
,
pkt
.
toString
().
data
());
}
evbuffer_add
(
output
,
buf
,
n
);
};
switch
(
session
->
packet
.
id_
.
eid_
)
{
case
AdemcoMsgId
:
:
id_ack
:
/*if (load_test) {
...
...
@@ -175,6 +185,7 @@ void handle_ademco_msg(Session* session, bufferevent* bev)
switch
(
session
->
packet
.
ademcoData_
.
ademco_event_
)
{
case
EVENT_WHAT_IS_YOUR_TYPE
:
{
ack
();
auto
n
=
session
->
packet
.
make_hb
(
buf
,
sizeof
(
buf
),
session
->
packet
.
seq_
.
value_
,
session
->
acct
,
session
->
ademco_id
,
0
,
ademcoEventFromMachineType
(
session
->
type
),
0
);
...
...
@@ -206,6 +217,7 @@ void handle_ademco_msg(Session* session, bufferevent* bev)
}
else
if
(
0
==
session
->
packet
.
ademcoData_
.
gg_
)
{
session
->
status
=
machineStatusFromAdemcoEvent
(
session
->
packet
.
ademcoData_
.
ademco_event_
);
}
else
{
break
;
}
ack
();
auto
n
=
session
->
packet
.
make_hb
(
buf
,
sizeof
(
buf
),
session
->
packet
.
seq_
.
value_
,
session
->
acct
,
session
->
ademco_id
,
session
->
packet
.
ademcoData_
.
gg_
,
session
->
packet
.
ademcoData_
.
ademco_event_
,
session
->
packet
.
ademcoData_
.
zone_
);
...
...
@@ -253,6 +265,7 @@ void handle_ademco_msg(Session* session, bufferevent* bev)
}
else
if
(
0
==
session
->
packet
.
ademcoData_
.
gg_
)
{
session
->
status
=
MachineStatus
::
Disarm
;
}
else
{
break
;
}
ack
();
auto
n
=
session
->
packet
.
make_hb
(
buf
,
sizeof
(
buf
),
session
->
packet
.
seq_
.
value_
,
session
->
acct
,
session
->
ademco_id
,
session
->
packet
.
ademcoData_
.
gg_
,
EVENT_DISARM
,
session
->
packet
.
ademcoData_
.
zone_
);
...
...
@@ -275,6 +288,17 @@ void handle_ademco_msg(Session* session, bufferevent* bev)
break
;
}
case
EVENT_EMERGENCY
:
{
ack
();
auto
n
=
session
->
packet
.
make_hb
(
buf
,
sizeof
(
buf
),
session
->
packet
.
seq_
.
value_
,
session
->
acct
,
session
->
ademco_id
,
0
,
EVENT_EMERGENCY
,
0
);
if
(
print_data
)
{
printf
(
"T#%d C#%d send:%s
\n
"
,
session
->
thread_id
,
session
->
id
,
session
->
packet
.
toString
().
data
());
}
evbuffer_add
(
output
,
buf
,
n
);
}
}
}
...
...
@@ -638,7 +662,7 @@ void commandcb(evutil_socket_t, short, void* user_data)
// context->packet.toString(ademco::detail::ToStringOption::ALL_CHAR_AS_HEX).data());
// }
//} else
if
(
client
->
type
==
EVENT_I_AM_3_SECTION_MACHINE
&&
(
e
==
EVENT_ARM
||
e
==
EVENT_DISARM
))
{
if
(
client
->
type
==
MachineType
::
ThreeSection
&&
(
e
==
EVENT_ARM
||
e
==
EVENT_DISARM
))
{
for
(
AdemcoGG
gg
=
1
;
gg
<=
3
;
gg
++
)
{
n
=
client
->
packet
.
make_hb
(
buf
,
sizeof
(
buf
),
client
->
nextSeq
(),
client
->
acct
,
client
->
ademco_id
,
gg
,
e
,
0
);
evbuffer_add
(
output
,
buf
,
n
);
...
...
examples/server_demo_libevent/server_demo_libevent.cpp
View file @
aeac7bf6
...
...
@@ -371,7 +371,7 @@ void handle_ademco_msg(ThreadContext* context, bufferevent* bev)
break
;
}
}
else
if
(
ademco
::
isMachineStatusEvent
(
context
->
packet
.
ademcoData_
.
ademco_event_
))
{
auto
status
=
machi
en
StatusFromAdemcoEvent
(
context
->
packet
.
ademcoData_
.
ademco_event_
);
auto
status
=
machi
ne
StatusFromAdemcoEvent
(
context
->
packet
.
ademcoData_
.
ademco_event_
);
if
(
context
->
packet
.
ademcoData_
.
gg_
==
0
)
{
client
.
status
=
status
;
}
else
if
(
context
->
packet
.
ademcoData_
.
gg_
==
1
)
{
client
.
status1
=
status
;
}
else
if
(
context
->
packet
.
ademcoData_
.
gg_
==
2
)
{
client
.
status2
=
status
;
}
...
...
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