Commit 2e893557 authored by captainwong's avatar captainwong

update swig demos

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