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
7b1b3037
Commit
7b1b3037
authored
4 years ago
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
simple server ok
parent
b5c539d7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
72 additions
and
15 deletions
+72
-15
Program.cs
csharp_dll_demo/Program.cs
+2
-2
SimpleServer.java
javademo/jni/SimpleServer.java
+1
-1
SimpleServerThread.java
javademo/jni/SimpleServerThread.java
+69
-12
No files found.
csharp_dll_demo/Program.cs
View file @
7b1b3037
...
...
@@ -116,9 +116,9 @@ namespace csharp_dll_demo
}
// handle event
if
(
id
==
"HENG-BO"
)
if
(
id
==
"HENG-BO"
||
id
==
"ADM-CID"
)
{
pattern
=
@"\[\#(?<ademco_id>
\d
{6})\|(?<ademco_event>\d{4})\s(?<gg>\d{2})\s(?<zone>\d{3})\]"
;
pattern
=
@"\[\#(?<ademco_id>
[\d|a-fA-F]
{6})\|(?<ademco_event>\d{4})\s(?<gg>\d{2})\s(?<zone>\d{3})\]"
;
Console
.
WriteLine
(
Regex
.
Matches
(
data
,
pattern
)[
0
].
ToString
());
}
}
...
...
This diff is collapsed.
Click to expand it.
javademo/jni/SimpleServer.java
View file @
7b1b3037
...
...
@@ -46,7 +46,7 @@ public class SimpleServer {
while
(
true
)
{
Socket
socket
=
serverSocket
.
accept
();
System
.
out
.
println
(
"New client connected"
);
new
SimpleServerThread
(
socket
).
start
();
new
SimpleServerThread
(
socket
,
lib
).
start
();
}
}
catch
(
IOException
ex
)
{
...
...
This diff is collapsed.
Click to expand it.
javademo/jni/SimpleServerThread.java
View file @
7b1b3037
package
javademo
.
jni
;
import
java.io.*
;
import
java.net.*
;
import
java.util.regex.*
;
public
class
SimpleServerThread
extends
Thread
{
private
Socket
socket
;
private
AdemcoHbLibrary
lib
;
public
SimpleServerThread
(
Socket
socket
)
{
public
SimpleServerThread
(
Socket
socket
,
AdemcoHbLibrary
lib
)
{
this
.
socket
=
socket
;
this
.
lib
=
lib
;
}
public
void
run
()
{
...
...
@@ -19,17 +22,71 @@ public class SimpleServerThread extends Thread {
PrintWriter
writer
=
new
PrintWriter
(
output
,
true
);
String
text
;
do
{
text
=
reader
.
readLine
();
System
.
out
.
println
(
text
);
//String reverseText = new StringBuilder(text).reverse().toString();
// writer.println("Server: " + reverseText);
}
while
(!
text
.
equals
(
"bye"
));
String
line
;
// 创建 Pattern 对象
String
pattern1
=
"\"(.+)\"(\\d{4}).+\\#(.+)\\["
;
Pattern
r1
=
Pattern
.
compile
(
pattern1
);
String
pattern2
=
"\\[\\#([\\d\\|a-fA-F]{6})\\|(\\d{4})\\s(\\d{2})\\s(\\d{3})\\]"
;
Pattern
r2
=
Pattern
.
compile
(
pattern2
);
while
(
true
){
line
=
reader
.
readLine
();
if
(
line
==
null
)
continue
;
System
.
out
.
println
(
line
);
// 现在创建 matcher 对象
Matcher
m
=
r1
.
matcher
(
line
);
if
(
m
.
find
())
{
String
id
=
m
.
group
(
1
);
int
seq
=
Integer
.
parseInt
(
m
.
group
(
2
));
int
ademco_id
=
Integer
.
parseInt
(
m
.
group
(
3
));
System
.
out
.
println
(
"Found id: "
+
id
);
System
.
out
.
println
(
"Found seq: "
+
seq
);
System
.
out
.
println
(
"Found ademco_id: "
+
ademco_id
);
switch
(
id
){
case
"ACK"
:
break
;
case
"NULL"
:
// reply ack
{
String
ack
=
lib
.
packAck
(
seq
,
ademco_id
);
System
.
out
.
println
(
"replying ack:"
+
ack
);
writer
.
write
(
ack
);
writer
.
flush
();
break
;
}
case
"HENG-BO"
:
case
"ADM-CID"
:
{
// reply ack
String
ack
=
lib
.
packAck
(
seq
,
ademco_id
);
System
.
out
.
println
(
"replying ack:"
+
ack
);
writer
.
write
(
ack
);
writer
.
flush
();
// handle event
m
=
r2
.
matcher
(
line
);
if
(
m
.
find
())
{
int
ademco_id16
=
Integer
.
parseInt
(
m
.
group
(
1
),
16
);
assert
(
ademco_id
==
ademco_id16
);
int
ademco_event
=
Integer
.
parseInt
(
m
.
group
(
2
));
int
gg
=
Integer
.
parseInt
(
m
.
group
(
3
));
int
zone
=
Integer
.
parseInt
(
m
.
group
(
4
));
System
.
out
.
println
(
"Found ademco_event: "
+
ademco_event
);
System
.
out
.
println
(
"Found gg: "
+
gg
);
System
.
out
.
println
(
"Found zone: "
+
zone
);
}
else
{
System
.
out
.
println
(
"r2 NO MATCH"
);
}
break
;
}
}
}
else
{
System
.
out
.
println
(
"r1 NO MATCH"
);
}
}
socket
.
close
();
}
catch
(
IOException
ex
)
{
System
.
out
.
println
(
"Server exception: "
+
ex
.
getMessage
());
ex
.
printStackTrace
();
...
...
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