Exemple #1
0
        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"));
            }
        }
Exemple #2
0
 public ISO9141(ICommbox box)
     : base(box)
 {
     options = null;
     kLine = SK_NO;
     lLine = RK_NO;
     func = new Default<ISO9141>(box, this);
 }
Exemple #3
0
 public ISO9141(ICommbox box)
     : base(box)
 {
     options = null;
     kLine   = SK_NO;
     lLine   = RK_NO;
     func    = new Default <ISO9141>(box, this);
 }
Exemple #4
0
        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;
            }
        }
Exemple #5
0
        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);
            }
        }