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
0865e1f3
Commit
0865e1f3
authored
Jul 04, 2020
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update javademo
parent
f2dc062d
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
33 additions
and
43 deletions
+33
-43
javademo-README.md
examples/javademo-README.md
+4
-2
dllmain.cpp
examples/javademo/cpp/dllmain.cpp
+9
-9
javademo_jni_AdemcoHbLibrary.h
examples/javademo/cpp/javademo_jni_AdemcoHbLibrary.h
+11
-11
AdemcoHbLibrary.java
examples/javademo/jni/AdemcoHbLibrary.java
+8
-20
SimpleServer.java
examples/javademo/jni/SimpleServer.java
+1
-1
No files found.
examples/javademo-README.md
View file @
0865e1f3
...
@@ -25,11 +25,13 @@
...
@@ -25,11 +25,13 @@
## Windows
## Windows
1.
`javac -encoding utf-8
javademo/jni/AdemcoHbLibrary.java && javah -d
javademo/cpp -jni javademo.jni.AdemcoHbLibrary`
1.
`javac -encoding utf-8
./javademo/jni/AdemcoHbLibrary.java && javah -d ./
javademo/cpp -jni javademo.jni.AdemcoHbLibrary`
2.
使用
`Visual Studio 2019`
打开
`ademco_hb.sln`
, 以
`Release/x64`
编译
`ademco_java`
项目,可能需要修改项目属性
`C/C++`
-->
`Additional Include Directories`
,将与
`Java`
相关的路径修改,生成
`x64/Release/ademco_java.dll`
2.
使用
`Visual Studio 2019`
打开
`ademco_hb.sln`
, 以
`Release/x64`
编译
`ademco_java`
项目,可能需要修改项目属性
`C/C++`
-->
`Additional Include Directories`
,将与
`Java`
相关的路径修改,生成
`x64/Release/ademco_java.dll`
3.
`java javademo.jni.SimpleServer 12345`
进行测试
3.
`javac javademo/jni/SimpleServer.java`
编译示例
4.
`java javademo.jni.SimpleServer 12345`
进行测试
## 作者对 `Java` 开发不熟悉,有任何意见、建议欢迎提 `issue` 及 `pr`
## 作者对 `Java` 开发不熟悉,有任何意见、建议欢迎提 `issue` 及 `pr`
...
...
examples/javademo/cpp/dllmain.cpp
View file @
0865e1f3
...
@@ -22,14 +22,14 @@ BOOL APIENTRY DllMain( HMODULE hModule,
...
@@ -22,14 +22,14 @@ BOOL APIENTRY DllMain( HMODULE hModule,
}
}
#endif
#endif
JNIEXPORT
void
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
native
Print
JNIEXPORT
void
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
test
Print
(
JNIEnv
*
,
jobject
)
(
JNIEnv
*
,
jobject
)
{
{
printf
(
"native print
\n
"
);
printf
(
"native print
\n
"
);
}
}
JNIEXPORT
jobject
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
nativeP
arse
JNIEXPORT
jobject
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
p
arse
(
JNIEnv
*
env
,
j
class
clazz
,
jstring
pack
,
jint
pack_len
)
(
JNIEnv
*
env
,
j
object
,
jstring
pack
,
jint
pack_len
)
{
{
ademco
::
AdemcoPacket
ap
;
ademco
::
AdemcoPacket
ap
;
size_t
commited
=
0
;
size_t
commited
=
0
;
...
@@ -37,7 +37,7 @@ JNIEXPORT jobject JNICALL Java_javademo_jni_AdemcoHbLibrary_nativeParse
...
@@ -37,7 +37,7 @@ JNIEXPORT jobject JNICALL Java_javademo_jni_AdemcoHbLibrary_nativeParse
std
::
string
s
=
env
->
GetStringUTFChars
(
pack
,
&
iscopy
);
std
::
string
s
=
env
->
GetStringUTFChars
(
pack
,
&
iscopy
);
auto
result
=
ap
.
parse
(
s
.
data
(),
static_cast
<
size_t
>
(
pack_len
),
commited
);
auto
result
=
ap
.
parse
(
s
.
data
(),
static_cast
<
size_t
>
(
pack_len
),
commited
);
// Attempt to find the Version class.
// Attempt to find the Version class.
clazz
=
env
->
FindClass
(
"javademo/jni/AdemcoHbLibrary$ParseResult"
);
jclass
clazz
=
env
->
FindClass
(
"javademo/jni/AdemcoHbLibrary$ParseResult"
);
// If this class does not exist then return null.
// If this class does not exist then return null.
if
(
clazz
==
0
)
if
(
clazz
==
0
)
return
0
;
return
0
;
...
@@ -61,8 +61,8 @@ JNIEXPORT jobject JNICALL Java_javademo_jni_AdemcoHbLibrary_nativeParse
...
@@ -61,8 +61,8 @@ JNIEXPORT jobject JNICALL Java_javademo_jni_AdemcoHbLibrary_nativeParse
return
obj
;
return
obj
;
}
}
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
nativeP
ack
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
p
ack
(
JNIEnv
*
env
,
j
class
clazz
,
jint
seq
,
jint
ademco_id
,
jint
ademco_event
,
jint
zone
,
jint
gg
)
(
JNIEnv
*
env
,
j
object
,
jint
seq
,
jint
ademco_id
,
jint
ademco_event
,
jint
zone
,
jint
gg
)
{
{
ademco
::
AdemcoPacket
ap
;
ademco
::
AdemcoPacket
ap
;
char
buff
[
1024
];
char
buff
[
1024
];
...
@@ -76,8 +76,8 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_nativePack
...
@@ -76,8 +76,8 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_nativePack
return
0
;
return
0
;
}
}
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
nativeP
ackAck
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
p
ackAck
(
JNIEnv
*
env
,
j
class
clazz
,
jint
seq
,
jint
ademco_id
)
(
JNIEnv
*
env
,
j
object
,
jint
seq
,
jint
ademco_id
)
{
{
ademco
::
AdemcoPacket
ap
;
ademco
::
AdemcoPacket
ap
;
char
buff
[
1024
];
char
buff
[
1024
];
...
...
examples/javademo/cpp/javademo_jni_AdemcoHbLibrary.h
View file @
0865e1f3
...
@@ -9,35 +9,35 @@ extern "C" {
...
@@ -9,35 +9,35 @@ extern "C" {
#endif
#endif
/*
/*
* Class: javademo_jni_AdemcoHbLibrary
* Class: javademo_jni_AdemcoHbLibrary
* Method:
native
Print
* Method:
test
Print
* Signature: ()V
* Signature: ()V
*/
*/
JNIEXPORT
void
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
native
Print
JNIEXPORT
void
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
test
Print
(
JNIEnv
*
,
jobject
);
(
JNIEnv
*
,
jobject
);
/*
/*
* Class: javademo_jni_AdemcoHbLibrary
* Class: javademo_jni_AdemcoHbLibrary
* Method:
nativeP
arse
* Method:
p
arse
* Signature: (Ljava/lang/String;I)Ljavademo/jni/AdemcoHbLibrary/ParseResult;
* Signature: (Ljava/lang/String;I)Ljavademo/jni/AdemcoHbLibrary/ParseResult;
*/
*/
JNIEXPORT
jobject
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
nativeP
arse
JNIEXPORT
jobject
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
p
arse
(
JNIEnv
*
,
j
class
,
jstring
,
jint
);
(
JNIEnv
*
,
j
object
,
jstring
,
jint
);
/*
/*
* Class: javademo_jni_AdemcoHbLibrary
* Class: javademo_jni_AdemcoHbLibrary
* Method:
nativeP
ack
* Method:
p
ack
* Signature: (IIIII)Ljava/lang/String;
* Signature: (IIIII)Ljava/lang/String;
*/
*/
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
nativeP
ack
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
p
ack
(
JNIEnv
*
,
j
class
,
jint
,
jint
,
jint
,
jint
,
jint
);
(
JNIEnv
*
,
j
object
,
jint
,
jint
,
jint
,
jint
,
jint
);
/*
/*
* Class: javademo_jni_AdemcoHbLibrary
* Class: javademo_jni_AdemcoHbLibrary
* Method:
nativeP
ackAck
* Method:
p
ackAck
* Signature: (II)Ljava/lang/String;
* Signature: (II)Ljava/lang/String;
*/
*/
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
nativeP
ackAck
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_
p
ackAck
(
JNIEnv
*
,
j
class
,
jint
,
jint
);
(
JNIEnv
*
,
j
object
,
jint
,
jint
);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
...
...
examples/javademo/jni/AdemcoHbLibrary.java
View file @
0865e1f3
...
@@ -19,7 +19,7 @@ public class AdemcoHbLibrary
...
@@ -19,7 +19,7 @@ public class AdemcoHbLibrary
}
}
}
}
p
rivate
native
void
native
Print
();
p
ublic
native
void
test
Print
();
public
class
ParseResult
{
public
class
ParseResult
{
// 0 解析到正确、完整的一包;
// 0 解析到正确、完整的一包;
...
@@ -36,7 +36,7 @@ public class AdemcoHbLibrary
...
@@ -36,7 +36,7 @@ public class AdemcoHbLibrary
* @param[in] pack_len 网络数据流有效长度
* @param[in] pack_len 网络数据流有效长度
* @return ParseResult
* @return ParseResult
*/
*/
p
rivate
static
native
ParseResult
nativeP
arse
(
String
pack
,
int
pack_len
);
p
ublic
native
ParseResult
p
arse
(
String
pack
,
int
pack_len
);
/*
/*
* @brief 将远程控制命令打包成网络传输数据
* @brief 将远程控制命令打包成网络传输数据
...
@@ -47,7 +47,7 @@ public class AdemcoHbLibrary
...
@@ -47,7 +47,7 @@ public class AdemcoHbLibrary
* @param[in] gg 分防区号
* @param[in] gg 分防区号
* @return String
* @return String
*/
*/
p
rivate
static
native
String
nativeP
ack
(
int
seq
,
int
ademco_id
,
int
ademco_event
,
int
zone
,
int
gg
);
p
ublic
native
String
p
ack
(
int
seq
,
int
ademco_id
,
int
ademco_event
,
int
zone
,
int
gg
);
/*
/*
* @brief 打包ACK
* @brief 打包ACK
...
@@ -55,24 +55,12 @@ public class AdemcoHbLibrary
...
@@ -55,24 +55,12 @@ public class AdemcoHbLibrary
* @param[in] ademco_id 安定宝ID
* @param[in] ademco_id 安定宝ID
* @return String
* @return String
*/
*/
p
rivate
static
native
String
nativeP
ackAck
(
int
seq
,
int
ademco_id
);
p
ublic
native
String
p
ackAck
(
int
seq
,
int
ademco_id
);
public
void
testPprint
(){
nativePrint
();
}
// public void testPrint(){ nativePrint(); }
public
ParseResult
parse
(
String
pack
,
int
pack_len
){
return
nativeParse
(
pack
,
pack_len
);}
// public ParseResult parse(String pack, int pack_len){return nativeParse(pack, pack_len);}
public
String
pack
(
int
seq
,
int
ademco_id
,
int
ademco_event
,
int
zone
,
int
gg
){
return
nativePack
(
seq
,
ademco_id
,
ademco_event
,
zone
,
gg
);}
// public String pack(int seq, int ademco_id, int ademco_event, int zone, int gg){return nativePack(seq, ademco_id, ademco_event, zone, gg);}
public
String
packAck
(
int
seq
,
int
ademco_id
){
return
nativePackAck
(
seq
,
ademco_id
);}
// public String packAck(int seq, int ademco_id){return nativePackAck(seq, ademco_id);}
public
static
void
main
(
String
[]
args
){
AdemcoHbLibrary
lib
=
new
AdemcoHbLibrary
();
lib
.
testPprint
();
String
data
=
"\nC5C30053\"HENG-BO\"0000R000000L000000#90219125916578[#000000|1737 00 000]_09:11:19,08-05-2019\r"
;
ParseResult
res
=
lib
.
parse
(
data
,
data
.
length
());
assert
(
res
.
result
==
0
);
assert
(
res
.
cb_commited
==
data
.
length
());
System
.
out
.
println
(
"parse result="
+
res
.
result
+
",cb_commited="
+
res
.
cb_commited
);
}
}
}
examples/javademo/jni/SimpleServer.java
View file @
0865e1f3
...
@@ -7,7 +7,7 @@ public class SimpleServer {
...
@@ -7,7 +7,7 @@ public class SimpleServer {
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
AdemcoHbLibrary
lib
=
new
AdemcoHbLibrary
();
AdemcoHbLibrary
lib
=
new
AdemcoHbLibrary
();
lib
.
testP
p
rint
();
lib
.
testPrint
();
// test parse
// test parse
{
{
...
...
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