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
May 27, 2020
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
simple server ok
parent
b5c539d7
Show 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
...
@@ -116,9 +116,9 @@ namespace csharp_dll_demo
}
}
// handle event
// 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
());
Console
.
WriteLine
(
Regex
.
Matches
(
data
,
pattern
)[
0
].
ToString
());
}
}
}
}
...
...
javademo/jni/SimpleServer.java
View file @
7b1b3037
...
@@ -46,7 +46,7 @@ public class SimpleServer {
...
@@ -46,7 +46,7 @@ public class SimpleServer {
while
(
true
)
{
while
(
true
)
{
Socket
socket
=
serverSocket
.
accept
();
Socket
socket
=
serverSocket
.
accept
();
System
.
out
.
println
(
"New client connected"
);
System
.
out
.
println
(
"New client connected"
);
new
SimpleServerThread
(
socket
).
start
();
new
SimpleServerThread
(
socket
,
lib
).
start
();
}
}
}
catch
(
IOException
ex
)
{
}
catch
(
IOException
ex
)
{
...
...
javademo/jni/SimpleServerThread.java
View file @
7b1b3037
package
javademo
.
jni
;
package
javademo
.
jni
;
import
java.io.*
;
import
java.io.*
;
import
java.net.*
;
import
java.net.*
;
import
java.util.regex.*
;
public
class
SimpleServerThread
extends
Thread
{
public
class
SimpleServerThread
extends
Thread
{
private
Socket
socket
;
private
Socket
socket
;
private
AdemcoHbLibrary
lib
;
public
SimpleServerThread
(
Socket
socket
)
{
public
SimpleServerThread
(
Socket
socket
,
AdemcoHbLibrary
lib
)
{
this
.
socket
=
socket
;
this
.
socket
=
socket
;
this
.
lib
=
lib
;
}
}
public
void
run
()
{
public
void
run
()
{
...
@@ -19,17 +22,71 @@ public class SimpleServerThread extends Thread {
...
@@ -19,17 +22,71 @@ public class SimpleServerThread extends Thread {
PrintWriter
writer
=
new
PrintWriter
(
output
,
true
);
PrintWriter
writer
=
new
PrintWriter
(
output
,
true
);
String
text
;
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
);
do
{
while
(
true
){
text
=
reader
.
readLine
();
line
=
reader
.
readLine
();
System
.
out
.
println
(
text
);
if
(
line
==
null
)
continue
;
//String reverseText = new StringBuilder(text).reverse().toString();
System
.
out
.
println
(
line
);
// writer.println("Server: " + reverseText);
}
while
(!
text
.
equals
(
"bye"
));
// 现在创建 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
)
{
}
catch
(
IOException
ex
)
{
System
.
out
.
println
(
"Server exception: "
+
ex
.
getMessage
());
System
.
out
.
println
(
"Server exception: "
+
ex
.
getMessage
());
ex
.
printStackTrace
();
ex
.
printStackTrace
();
...
...
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