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
5dbcdb7f
Commit
5dbcdb7f
authored
Mar 22, 2022
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix 2
parent
2f1f894f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
2 deletions
+47
-2
dllmain.cpp
examples/javademo/cpp/dllmain.cpp
+39
-2
javademo_jni_AdemcoHbLibrary.h
examples/javademo/cpp/javademo_jni_AdemcoHbLibrary.h
+8
-0
No files found.
examples/javademo/cpp/dllmain.cpp
View file @
5dbcdb7f
...
@@ -79,6 +79,27 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack
...
@@ -79,6 +79,27 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack
}
}
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_pack2
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
,
jstring
xdata
)
{
jboolean
iscopy
=
0
;
std
::
string
sacct
=
env
->
GetStringUTFChars
(
acct
,
&
iscopy
);
std
::
string
s
=
env
->
GetStringUTFChars
(
xdata
,
&
iscopy
);
auto
xdata_
=
ademco
::
makeXData
(
s
.
data
(),
s
.
size
());
ademco
::
AdemcoPacket
ap
;
char
buff
[
1024
];
auto
res
=
ap
.
make_hb
(
buff
,
sizeof
(
buff
),
static_cast
<
uint16_t
>
(
seq
),
sacct
,
static_cast
<
size_t
>
(
ademco_id
),
static_cast
<
unsigned
char
>
(
gg
),
static_cast
<
ademco
::
ADEMCO_EVENT
>
(
ademco_event
),
static_cast
<
size_t
>
(
zone
),
xdata_
);
if
(
res
>
0
)
{
//buff[res] = 0;
auto
ascii
=
ademco
::
detail
::
toString
(
buff
,
res
,
ademco
::
detail
::
ToStringOption
::
ALL_CHAR_AS_HEX
,
false
,
false
);
memcpy
(
buff
,
ascii
.
data
(),
ascii
.
size
());
return
env
->
NewStringUTF
(
buff
);
}
return
0
;
}
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_pack3
(
JNIEnv
*
env
,
jobject
,
jint
seq
,
jstring
acct
,
jint
ademco_id
,
jint
ademco_event
,
jint
zone
,
jint
gg
,
jcharArray
xdata
,
jint
xdata_len
)
(
JNIEnv
*
env
,
jobject
,
jint
seq
,
jstring
acct
,
jint
ademco_id
,
jint
ademco_event
,
jint
zone
,
jint
gg
,
jcharArray
xdata
,
jint
xdata_len
)
{
{
jboolean
iscopy
=
0
;
jboolean
iscopy
=
0
;
...
@@ -104,7 +125,7 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack2
...
@@ -104,7 +125,7 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack2
buf
=
nullptr
;
buf
=
nullptr
;
ademco
::
AdemcoPacket
ap
;
ademco
::
AdemcoPacket
ap
;
char
buff
[
1024
];
char
buff
[
1024
]
=
{
0
}
;
auto
res
=
ap
.
make_hb
(
buff
,
sizeof
(
buff
),
static_cast
<
uint16_t
>
(
seq
),
auto
res
=
ap
.
make_hb
(
buff
,
sizeof
(
buff
),
static_cast
<
uint16_t
>
(
seq
),
sacct
,
static_cast
<
size_t
>
(
ademco_id
),
static_cast
<
unsigned
char
>
(
gg
),
sacct
,
static_cast
<
size_t
>
(
ademco_id
),
static_cast
<
unsigned
char
>
(
gg
),
static_cast
<
ademco
::
ADEMCO_EVENT
>
(
ademco_event
),
static_cast
<
size_t
>
(
zone
),
xdata_
);
static_cast
<
ademco
::
ADEMCO_EVENT
>
(
ademco_event
),
static_cast
<
size_t
>
(
zone
),
xdata_
);
...
@@ -112,7 +133,23 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack2
...
@@ -112,7 +133,23 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack2
//buff[res] = 0;
//buff[res] = 0;
auto
ascii
=
ademco
::
detail
::
toString
(
buff
,
res
,
ademco
::
detail
::
ToStringOption
::
ALL_CHAR_AS_HEX
,
false
,
false
);
auto
ascii
=
ademco
::
detail
::
toString
(
buff
,
res
,
ademco
::
detail
::
ToStringOption
::
ALL_CHAR_AS_HEX
,
false
,
false
);
memcpy
(
buff
,
ascii
.
data
(),
ascii
.
size
());
memcpy
(
buff
,
ascii
.
data
(),
ascii
.
size
());
return
env
->
NewStringUTF
(
buff
);
//return env->NewStringUTF(buff);
jcharArray
rarray
=
env
->
NewCharArray
(
ascii
.
size
());
//定义数据变量
if
(
rarray
==
nullptr
){
return
0
;
}
jchar
*
pArray
=
(
jchar
*
)
calloc
(
ascii
.
size
(),
sizeof
(
jchar
));
//开辟jchar类型内存空间
if
(
pArray
==
nullptr
){
return
0
;
}
//copy buffer to jchar array
for
(
int
i
=
0
;
i
<
ascii
.
size
();
i
++
)
{
*
(
pArray
+
i
)
=
buff
[
i
];
//复制bufTemp数据元素到pArray内存空间
}
env
->
SetCharArrayRegion
(
rarray
,
0
,
ascii
.
size
(),
pArray
);
//复制pArray的jchar数据元素到jcharArray
return
rarray
;
}
}
return
0
;
return
0
;
}
}
...
...
examples/javademo/cpp/javademo_jni_AdemcoHbLibrary.h
View file @
5dbcdb7f
...
@@ -37,6 +37,14 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack
...
@@ -37,6 +37,14 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack
* Signature: (ILjava/lang/String;IIIILjava/lang/String;)Ljava/lang/String;
* Signature: (ILjava/lang/String;IIIILjava/lang/String;)Ljava/lang/String;
*/
*/
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_pack2
JNIEXPORT
jstring
JNICALL
Java_javademo_jni_AdemcoHbLibrary_pack2
(
JNIEnv
*
,
jobject
,
jint
,
jstring
,
jint
,
jint
,
jint
,
jint
,
jstring
);
/*
* Class: javademo_jni_AdemcoHbLibrary
* Method: pack3
* Signature: (ILjava/lang/String;IIII[CI)[C
*/
JNIEXPORT
jcharArray
JNICALL
Java_javademo_jni_AdemcoHbLibrary_pack3
(
JNIEnv
*
,
jobject
,
jint
,
jstring
,
jint
,
jint
,
jint
,
jint
,
jcharArray
,
jint
);
(
JNIEnv
*
,
jobject
,
jint
,
jstring
,
jint
,
jint
,
jint
,
jint
,
jcharArray
,
jint
);
/*
/*
...
...
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