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
9713cdaf
Commit
9713cdaf
authored
May 19, 2023
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add comment for arm/disarm; format code
parent
e156a459
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
142 additions
and
114 deletions
+142
-114
CSharpDemo.cs
swig/CSharpDemo.cs
+44
-27
JavaDemo.java
swig/JavaDemo.java
+98
-87
No files found.
swig/CSharpDemo.cs
View file @
9713cdaf
...
...
@@ -15,7 +15,7 @@ namespace CSharpDemo
{
class
Program
{
static
void
Main
(
string
[]
args
)
static
void
Main
(
string
[]
args
)
{
// test parse
{
...
...
@@ -36,7 +36,7 @@ namespace CSharpDemo
Debug
.
Assert
(
pkt
.
data
.
ademcoEvent
==
AdemcoEvent
.
EVENT_I_AM_WIRE_MACHINE
);
Debug
.
Assert
(
pkt
.
data
.
gg
==
0
);
Debug
.
Assert
(
pkt
.
data
.
zone
==
0
);
Console
.
WriteLine
(
"res={0:D}, commited={1:D}"
,
res
,
libademco
.
size_tp_value
(
cb
));
Console
.
WriteLine
(
"res={0:D}, commited={1:D}"
,
res
,
libademco
.
size_tp_value
(
cb
));
}
// test pack
...
...
@@ -46,11 +46,11 @@ namespace CSharpDemo
uint
len
=
libademco
.
ademcoMakeHbPacket
(
buff
,
1024
,
1
,
"861234567890"
,
666666
,
AdemcoEvent
.
EVENT_ARM
,
0
,
0
,
null
);
Debug
.
Assert
(
len
>
0
);
Console
.
WriteLine
(
"len={0:D}"
,
len
);
libademco
.
ademcoPrint
(
buff
,
len
);
libademco
.
ademcoPrint
(
buff
,
len
);
Console
.
WriteLine
(
"test parse packed data"
);
Console
.
WriteLine
(
"test parse packed data"
);
AdemcoPacket
pkt
=
new
AdemcoPacket
();
SWIGTYPE_p_size_t
cb
=
libademco
.
new_size_tp
();
SWIGTYPE_p_size_t
cb
=
libademco
.
new_size_tp
();
AdemcoParseResult
res
=
libademco
.
ademcoPacketParse
(
buff
,
len
,
pkt
,
cb
);
Debug
.
Assert
(
res
==
AdemcoParseResult
.
RESULT_OK
);
Debug
.
Assert
(
libademco
.
size_tp_value
(
cb
)
==
len
);
...
...
@@ -84,34 +84,39 @@ namespace CSharpDemo
{
var
listener
=
new
TcpListener
(
IPAddress
.
Any
,
port
);
listener
.
Start
();
while
(
true
){
while
(
true
)
{
TcpClient
client
=
listener
.
AcceptTcpClient
();
Thread
thread
=
new
Thread
(
new
ParameterizedThreadStart
(
clientHandler
));
thread
.
Start
(
client
);
}
}
catch
(
Exception
e
)
}
catch
(
Exception
e
)
{
Console
.
WriteLine
(
e
.
Message
);
}
}
static
byte
[]
append
(
byte
[]
origin
,
byte
[]
buf
,
int
len
){
static
byte
[]
append
(
byte
[]
origin
,
byte
[]
buf
,
int
len
)
{
byte
[]
dst
=
new
byte
[
origin
.
Length
+
len
];
Array
.
ConstrainedCopy
(
origin
,
0
,
dst
,
0
,
origin
.
Length
);
Array
.
ConstrainedCopy
(
buf
,
0
,
dst
,
origin
.
Length
,
len
);
return
dst
;
}
static
byte
[]
eat
(
byte
[]
origin
,
int
len
){
if
(
origin
.
Length
==
len
){
return
new
byte
[
0
];}
static
byte
[]
eat
(
byte
[]
origin
,
int
len
)
{
if
(
origin
.
Length
==
len
)
{
return
new
byte
[
0
];
}
byte
[]
dst
=
new
byte
[
origin
.
Length
-
len
];
Array
.
ConstrainedCopy
(
origin
,
len
,
dst
,
0
,
origin
.
Length
-
len
);
return
dst
;
}
static
ushort
nextSeq
(
ushort
seq
){
if
(++
seq
==
10000
){
seq
=
1
;}
static
ushort
nextSeq
(
ushort
seq
)
{
if
(++
seq
==
10000
)
{
seq
=
1
;
}
return
seq
;
}
...
...
@@ -141,14 +146,16 @@ namespace CSharpDemo
{
break
;
}
if
(
nread
==
0
){
break
;}
if
(
nread
==
0
)
{
break
;
}
buff
=
append
(
buff
,
msg
,
nread
);
AdemcoParseResult
res
=
AdemcoParseResult
.
RESULT_OK
;
while
(
res
==
AdemcoParseResult
.
RESULT_OK
){
AdemcoParseResult
res
=
AdemcoParseResult
.
RESULT_OK
;
while
(
res
==
AdemcoParseResult
.
RESULT_OK
)
{
res
=
libademco
.
ademcoPacketParse
(
buff
,
(
uint
)
buff
.
Length
,
pkt
,
cb
);
switch
(
res
){
case
AdemcoParseResult
.
RESULT_OK
:
switch
(
res
)
{
case
AdemcoParseResult
.
RESULT_OK
:
Console
.
Write
(
"C:"
);
libademco
.
ademcoPrint
(
buff
,
libademco
.
size_tp_value
(
cb
));
buff
=
eat
(
buff
,
(
int
)
libademco
.
size_tp_value
(
cb
));
switch
(
pkt
.
id
)
...
...
@@ -161,18 +168,24 @@ namespace CSharpDemo
replyAck
(
stream
,
pkt
.
seq
,
pkt
.
acct
);
acct
=
pkt
.
acct
;
ademco_id
=
pkt
.
data
.
ademcoId
;
if
(
libademco
.
ademcoIsMachineTypeEvent
(
pkt
.
data
.
ademcoEvent
)
!=
0
){
if
(
libademco
.
ademcoIsMachineTypeEvent
(
pkt
.
data
.
ademcoEvent
)
!=
0
)
{
type
=
libademco
.
hbMachineTypeFromAdemcoEvent
(
pkt
.
data
.
ademcoEvent
);
}
if
(
libademco
.
ademcoIsMachineStatusEvent
(
pkt
.
data
.
ademcoEvent
)
!=
0
){
if
(
libademco
.
ademcoIsMachineStatusEvent
(
pkt
.
data
.
ademcoEvent
)
!=
0
)
{
status
=
libademco
.
hbMachineStatusFromAdemcoEvent
(
pkt
.
data
.
ademcoEvent
);
}
// 示范布撤防的调用方式
if
(++
counter
%
5
==
0
){
if
(
status
==
HbMachineStatus
.
HMS_ARM
){
// 演示如何进行布撤防,真实项目里可以删改本段
if
(++
counter
%
5
==
0
)
{
if
(
status
==
HbMachineStatus
.
HMS_ARM
)
{
sendDisarm
(
stream
,
nextSeq
(
seq
),
acct
,
ademco_id
,
"123456"
);
}
else
{
}
else
{
sendArm
(
stream
,
nextSeq
(
seq
),
acct
,
ademco_id
);
}
}
...
...
@@ -190,7 +203,8 @@ namespace CSharpDemo
}
}
static
void
replyAck
(
NetworkStream
stream
,
ushort
seq
,
string
acct
){
static
void
replyAck
(
NetworkStream
stream
,
ushort
seq
,
string
acct
)
{
byte
[]
buff
=
new
byte
[
1024
];
uint
len
=
libademco
.
ademcoMakeAckPacket
(
buff
,
1024
,
seq
,
acct
,
0
);
Console
.
Write
(
"S:"
);
...
...
@@ -198,7 +212,8 @@ namespace CSharpDemo
stream
.
Write
(
buff
,
0
,
(
int
)
len
);
}
static
void
sendArm
(
NetworkStream
stream
,
ushort
seq
,
string
acct
,
uint
ademcoId
){
static
void
sendArm
(
NetworkStream
stream
,
ushort
seq
,
string
acct
,
uint
ademcoId
)
{
byte
[]
buff
=
new
byte
[
1024
];
uint
len
=
libademco
.
ademcoMakeHbPacket
(
buff
,
1024
,
seq
,
acct
,
ademcoId
,
AdemcoEvent
.
EVENT_ARM
,
0
,
0
,
null
);
Console
.
Write
(
"S:"
);
...
...
@@ -206,10 +221,12 @@ namespace CSharpDemo
stream
.
Write
(
buff
,
0
,
(
int
)
len
);
}
static
void
sendDisarm
(
NetworkStream
stream
,
ushort
seq
,
string
acct
,
uint
ademcoId
,
string
pwd
){
static
void
sendDisarm
(
NetworkStream
stream
,
ushort
seq
,
string
acct
,
uint
ademcoId
,
string
pwd
)
{
byte
[]
buff
=
new
byte
[
1024
];
AdemcoXDataSegment
xdata
=
null
;
if
(!
string
.
IsNullOrEmpty
(
pwd
)){
if
(!
string
.
IsNullOrEmpty
(
pwd
))
{
xdata
=
new
AdemcoXDataSegment
();
libademco
.
ademcoMakeXData
(
xdata
,
AdemcoXDataLengthFormat
.
TWO_HEX
,
AdemcoXDataTransform
.
AdemcoXDataTransform_as_is
,
Encoding
.
ASCII
.
GetBytes
(
pwd
),
(
uint
)
pwd
.
Length
);
}
...
...
swig/JavaDemo.java
View file @
9713cdaf
This diff is collapsed.
Click to expand it.
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