private void ProtocolInit() { options = new ISO9141Options(); options.AddrCode = 0x33; options.ComLine = 7; options.Header = 0x68; options.LLine = true; options.SourceAddress = 0xF1; options.TargetAddress = 0x6A; Protocol = Commbox.CreateProtocol(ProtocolType.ISO9141_2); if (Protocol == null) { throw new Exception(Database.GetText("Not Protocol", "System")); } Pack = new ISO9141Pack(); if (!Protocol.Config(options) || !Pack.Config(options)) { throw new Exception(Database.GetText("Communication Fail", "System")); } }
public ISO9141(ICommbox box) : base(box) { options = null; kLine = SK_NO; lLine = RK_NO; func = new Default<ISO9141>(box, this); }
public ISO9141(ICommbox box) : base(box) { options = null; kLine = SK_NO; lLine = RK_NO; func = new Default <ISO9141>(box, this); }
public bool Config(object opts) { if (opts is ISO9141Options) { options = (ISO9141Options)opts; if (!ConfigLines()) return false; if (!Box.SetCommCtrl((byte)(PWC | RZFC | CK), SET_NULL) || !Box.SetCommLine(lLine, kLine) || !Box.SetCommLink((byte)(RS_232 | BIT9_MARK | SEL_SL | SET_DB20), SET_NULL, INVERTBYTE) || !Box.SetCommBaud(5) || !Box.SetCommTime(SETBYTETIME, Core.Timer.FromMilliseconds(5)) || !Box.SetCommTime(SETWAITTIME, Core.Timer.FromMilliseconds(25)) || !Box.SetCommTime(SETRECBBOUT, Core.Timer.FromMilliseconds(400)) || !Box.SetCommTime(SETRECFROUT, Core.Timer.FromMilliseconds(500)) || !Box.SetCommTime(SETLINKTIME, Core.Timer.FromMilliseconds(500))) return false; Thread.Sleep(TimeSpan.FromSeconds(1)); Box.BuffID = 0; if (!Box.NewBatch(Box.BuffID)) return false; if (!Box.SendOutData(new byte[] { options.AddrCode }, 0, 1) || !Box.SetCommLine((kLine == RK_NO ? lLine : SK_NO), kLine) || !Box.RunReceive(SET55_BAUD) || !Box.RunReceive(REC_LEN_1) || !Box.TurnOverOneByOne() || !Box.RunReceive(REC_LEN_1) || !Box.TurnOverOneByOne() || !Box.RunReceive(REC_LEN_1) || !Box.EndBatch()) { Box.DelBatch(Box.BuffID); return false; } int tempLen = 0; byte[] tempBuff = new byte[3]; if (!Box.RunBatch(new byte[] { Box.BuffID }, 1, false) || (tempLen = Box.ReadData(tempBuff, 0, 3, Core.Timer.FromSeconds(3))) != 3 || !Box.CheckResult(Core.Timer.FromMilliseconds(500))) { Box.DelBatch(Box.BuffID); return false; } if (!Box.DelBatch(Box.BuffID)) return false; //if (tempBuff[2] != 0) //{ // return false; //} if (!Box.SetCommTime(SETBYTETIME, Core.Timer.FromMilliseconds(5)) || !Box.SetCommTime(SETWAITTIME, Core.Timer.FromMilliseconds(15)) || !Box.SetCommTime(SETRECBBOUT, Core.Timer.FromMilliseconds(80)) || !Box.SetCommTime(SETRECFROUT, Core.Timer.FromMilliseconds(200))) return false; return true; } else { return false; } }
public bool Config(object opts) { if (opts is ISO9141Options) { options = (ISO9141Options)opts; if (!ConfigLines()) { return(false); } if (!Box.SetCommCtrl((byte)(PWC | RZFC | CK), SET_NULL) || !Box.SetCommLine(lLine, kLine) || !Box.SetCommLink((byte)(RS_232 | BIT9_MARK | SEL_SL | SET_DB20), SET_NULL, INVERTBYTE) || !Box.SetCommBaud(5) || !Box.SetCommTime(SETBYTETIME, Core.Timer.FromMilliseconds(5)) || !Box.SetCommTime(SETWAITTIME, Core.Timer.FromMilliseconds(25)) || !Box.SetCommTime(SETRECBBOUT, Core.Timer.FromMilliseconds(400)) || !Box.SetCommTime(SETRECFROUT, Core.Timer.FromMilliseconds(500)) || !Box.SetCommTime(SETLINKTIME, Core.Timer.FromMilliseconds(500))) { return(false); } Thread.Sleep(TimeSpan.FromSeconds(1)); Box.BuffID = 0; if (!Box.NewBatch(Box.BuffID)) { return(false); } if (!Box.SendOutData(new byte[] { options.AddrCode }, 0, 1) || !Box.SetCommLine((kLine == RK_NO ? lLine : SK_NO), kLine) || !Box.RunReceive(SET55_BAUD) || !Box.RunReceive(REC_LEN_1) || !Box.TurnOverOneByOne() || !Box.RunReceive(REC_LEN_1) || !Box.TurnOverOneByOne() || !Box.RunReceive(REC_LEN_1) || !Box.EndBatch()) { Box.DelBatch(Box.BuffID); return(false); } int tempLen = 0; byte[] tempBuff = new byte[3]; if (!Box.RunBatch(new byte[] { Box.BuffID }, 1, false) || (tempLen = Box.ReadData(tempBuff, 0, 3, Core.Timer.FromSeconds(3))) != 3 || !Box.CheckResult(Core.Timer.FromMilliseconds(500))) { Box.DelBatch(Box.BuffID); return(false); } if (!Box.DelBatch(Box.BuffID)) { return(false); } //if (tempBuff[2] != 0) //{ // return false; //} if (!Box.SetCommTime(SETBYTETIME, Core.Timer.FromMilliseconds(5)) || !Box.SetCommTime(SETWAITTIME, Core.Timer.FromMilliseconds(15)) || !Box.SetCommTime(SETRECBBOUT, Core.Timer.FromMilliseconds(80)) || !Box.SetCommTime(SETRECFROUT, Core.Timer.FromMilliseconds(200))) { return(false); } return(true); } else { return(false); } }