Commit 2e893557 authored by captainwong's avatar captainwong

update swig demos

parent 6a75e9e7
......@@ -24,7 +24,7 @@ namespace CSharpDemo
byte[] raw = Encoding.ASCII.GetBytes(str);
SWIGTYPE_p_size_t cb = libademco.new_size_tp();
AdemcoPacket pkt = new AdemcoPacket();
AdemcoParseResult res = libademco.ademcoPacketParse(raw, (uint)raw.Length, pkt, cb);
AdemcoParseResult res = libademco.ademcoPacketParse(raw, (uint)raw.Length, pkt, cb, null);
Debug.Assert(res == AdemcoParseResult.RESULT_OK);
Debug.Assert(libademco.size_tp_value(cb) == (uint)str.Length);
Debug.Assert(pkt.crc == 0xC5C3);
......@@ -51,7 +51,7 @@ namespace CSharpDemo
Console.WriteLine("test parse packed data");
AdemcoPacket pkt = new AdemcoPacket();
SWIGTYPE_p_size_t cb = libademco.new_size_tp();
AdemcoParseResult res = libademco.ademcoPacketParse(buff, len, pkt, cb);
AdemcoParseResult res = libademco.ademcoPacketParse(buff, len, pkt, cb, null);
Debug.Assert(res == AdemcoParseResult.RESULT_OK);
Debug.Assert(libademco.size_tp_value(cb) == len);
Debug.Assert(pkt.id == AdemcoPacketId.AID_HB);
......@@ -152,7 +152,7 @@ namespace CSharpDemo
AdemcoParseResult res = AdemcoParseResult.RESULT_OK;
while (res == AdemcoParseResult.RESULT_OK)
{
res = libademco.ademcoPacketParse(buff, (uint)buff.Length, pkt, cb);
res = libademco.ademcoPacketParse(buff, (uint)buff.Length, pkt, cb, null);
switch (res)
{
case AdemcoParseResult.RESULT_OK:
......
......@@ -90,7 +90,8 @@ public class JavaDemo {
System.out.println("using data=" + data);
AdemcoPacket pkt = new AdemcoPacket();
SWIGTYPE_p_size_t cb = libademco.new_size_tp();
AdemcoParseResult res = libademco.ademcoPacketParse(data.getBytes(), data.length(), pkt, cb);
AdemcoParseError err = new AdemcoParseError();
AdemcoParseResult res = libademco.ademcoPacketParse(data.getBytes(), data.length(), pkt, cb, err);
assert (res == AdemcoParseResult.RESULT_OK);
assert (libademco.size_tp_value(cb) == data.length());
System.out.println("parse result=" + res + ",cb_commited=" + libademco.size_tp_value(cb));
......@@ -173,6 +174,7 @@ public class JavaDemo {
SocketChannel channel;
byte[] buf = new byte[0];
AdemcoPacket pkt = new AdemcoPacket();
AdemcoParseError err = new AdemcoParseError();
SWIGTYPE_p_size_t cb = libademco.new_size_tp();
HbMachineType type = HbMachineType.HMT_INVALID;
HbMachineStatus status = HbMachineStatus.HMS_INVALID;
......@@ -193,7 +195,7 @@ public class JavaDemo {
public void onMsg(byte[] data) throws IOException {
buf = append(buf, data);
// System.out.println(printable_bytes(buf));
AdemcoParseResult res = libademco.ademcoPacketParse(buf, buf.length, pkt, cb);
AdemcoParseResult res = libademco.ademcoPacketParse(buf, buf.length, pkt, cb, err);
System.out.println(res + ", " + libademco.size_tp_value(cb));
switch (res) {
case RESULT_OK:
......
......@@ -12,7 +12,7 @@ function test_parse() {
var str = "\nC5C30053\"HENG-BO\"0000R000000L000000#90219125916578[#000000|1737 00 000]_09:11:19,08-05-2019\r";
var cb = libademco.new_size_tp();
var pkt = new libademco.AdemcoPacket();
var res = libademco.ademcoPacketParse(str, str.length, pkt, cb);
var res = libademco.ademcoPacketParse(str, str.length, pkt, cb, null);
assert.strictEqual(res, libademco.RESULT_OK);
assert.strictEqual(libademco.size_tp_value(cb), str.length);
assert.strictEqual(pkt.crc, 0xC5C3);
......@@ -37,7 +37,7 @@ function test_pack() {
console.log("test parse packed data");
var pkt2 = new libademco.AdemcoPacket();
var cb = libademco.new_size_tp();
var res = libademco.ademcoPacketParse(pkt.raw, pkt.raw_len, pkt2, cb);
var res = libademco.ademcoPacketParse(pkt.raw, pkt.raw_len, pkt2, cb, null);
assert.strictEqual(res, libademco.RESULT_OK);
assert.strictEqual(libademco.size_tp_value(cb), pkt.raw_len);
assert.strictEqual(pkt2.id, libademco.AID_HB);
......@@ -58,6 +58,7 @@ class AlarmHost {
this.buf = null;
this.inpkt = new libademco.AdemcoPacket();
this.outpkt = new libademco.AdemcoPacket();
this.parseErr = new libademco.AdemcoParseError();
this.cb = libademco.new_size_tp();
this.ademcoId = 0;
this.acct = '';
......@@ -68,14 +69,15 @@ class AlarmHost {
chunk = Buffer.concat([this.buf, chunk]);
}
let res = libademco.ademcoPacketParse(chunk.toString(), chunk.length, this.inpkt, this.cb);
let res = libademco.ademcoPacketParse(chunk.toString(), chunk.length, this.inpkt, this.cb, this.parseErr);
while (res === libademco.RESULT_OK) {
chunk = chunk.slice(libademco.size_tp_value(this.cb));
this.handleMsg();
res = libademco.ademcoPacketParse(chunk.toString(), chunk.length, this.inpkt, this.cb);
res = libademco.ademcoPacketParse(chunk.toString(), chunk.length, this.inpkt, this.cb, this.parseErr);
}
if (res === libademco.RESULT_ERROR) {
console.log('parse error at line=%d, msg=%s', this.parseErr.line, this.parseErr.msg);
chunk = null;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment