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
13fde13a
Commit
13fde13a
authored
Mar 22, 2022
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix 2
parent
64da4482
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
8 deletions
+31
-8
javademo.sh
examples/javademo.sh
+1
-1
dllmain.cpp
examples/javademo/cpp/dllmain.cpp
+22
-4
javademo_jni_AdemcoHbLibrary.h
examples/javademo/cpp/javademo_jni_AdemcoHbLibrary.h
+1
-1
SimpleServer.java
examples/javademo/jni/SimpleServer.java
+7
-2
No files found.
examples/javademo.sh
View file @
13fde13a
...
...
@@ -16,7 +16,7 @@ JAVA_INCLUDE_OS=$JAVA_INCLUDE/linux
# macOS
#JAVA_INCLUDE_OS=$JAVA_INCLUDE/darwin
rm
-f
javademo/jin/
*
.class
# 编译Java类
javac
-encoding
utf-8 javademo/jni/AdemcoHbLibrary.java
# 生成C++头文件
...
...
examples/javademo/cpp/dllmain.cpp
View file @
13fde13a
...
...
@@ -79,13 +79,31 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack
}
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_pack2
(
JNIEnv
*
env
,
jobject
,
jint
seq
,
jstring
acct
,
jint
ademco_id
,
jint
ademco_event
,
jint
zone
,
jint
gg
,
j
string
xdata
)
(
JNIEnv
*
env
,
jobject
,
jint
seq
,
jstring
acct
,
jint
ademco_id
,
jint
ademco_event
,
jint
zone
,
jint
gg
,
j
charArray
xdata
,
jint
xdata_len
)
{
jboolean
iscopy
=
0
;
std
::
string
sacct
=
env
->
GetStringUTFChars
(
acct
,
&
iscopy
);
std
::
string
s
=
env
->
GetStringUTFChars
(
xdata
,
&
iscopy
);
printf
(
"%s
\n
"
,
ademco
::
detail
::
toString
(
s
.
data
(),
s
.
size
(),
ademco
::
detail
::
ToStringOption
::
ALL_CHAR_AS_HEX
,
false
,
false
).
data
());
auto
xdata_
=
ademco
::
makeXData
(
s
.
data
(),
s
.
size
());
jchar
*
array
=
env
->
GetCharArrayElements
(
xdata
,
nullptr
);
//复制数组元素到array内存空间
if
(
array
==
nullptr
){
return
0
;
}
jboolean
*
buf
=
(
jboolean
*
)
calloc
(
xdata_len
,
sizeof
(
jboolean
));
//开辟jboolean类型的内存空间,jboolean对应的c++类型为unsigned char
if
(
buf
==
nullptr
){
LOGE
(
"jni_radio_send: calloc error."
);
return
0
;
}
for
(
int
i
=
0
;
i
<
xdata_len
;
i
++
){
//把jcharArray的数据元素复制到buf所指的内存空间
*
(
buf
+
i
)
=
(
jboolean
)(
*
(
array
+
i
));
}
env
->
ReleaseCharArrayElements
(
xdata
,
array
,
0
);
//释放资源
auto
xdata_
=
ademco
::
makeXData
(
buf
,
xdata_len
);
free
(
buf
);
//释放内存空间
buf
=
nullptr
;
ademco
::
AdemcoPacket
ap
;
char
buff
[
1024
];
auto
res
=
ap
.
make_hb
(
buff
,
sizeof
(
buff
),
static_cast
<
uint16_t
>
(
seq
),
...
...
examples/javademo/cpp/javademo_jni_AdemcoHbLibrary.h
View file @
13fde13a
...
...
@@ -37,7 +37,7 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack
* Signature: (ILjava/lang/String;IIIILjava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_pack2
(
JNIEnv
*
,
jobject
,
jint
,
jstring
,
jint
,
jint
,
jint
,
jint
,
j
string
);
(
JNIEnv
*
,
jobject
,
jint
,
jstring
,
jint
,
jint
,
jint
,
jint
,
j
charArray
,
jint
);
/*
* Class: javademo_jni_AdemcoHbLibrary
...
...
examples/javademo/jni/SimpleServer.java
View file @
13fde13a
...
...
@@ -73,8 +73,13 @@ public class SimpleServer {
// System.out.println(printable_bytes(xdata));
// String sx = new String(xdata);
// System.out.println("sx=" + sx);
String
xdata
=
"\u00EB\u00BA\u003F\u00A1\u0076"
;
System
.
out
.
println
(
"xdata="
+
printable_bytes
(
xdata
));
// String xdata = "\u00EB\u00BA\u003F\u00A1\u0076";
char
[]
xdata
=
new
char
[
5
];
xdata
[
0
]
=
0xEB
;
xdata
[
1
]
=
0xBA
;
xdata
[
2
]
=
0x3F
;
xdata
[
3
]
=
0xA1
;
xdata
[
4
]
=
0x76
;
String
data
=
lib
.
pack2
(
1234
,
"861234567890"
,
666666
,
3400
,
0
,
0
,
xdata
);
try
{
byte
[]
bytes
=
data
.
getBytes
(
data
);
...
...
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