예제 #1
0
        public Mikuni(ICommbox commbox, MikuniOptions options)
            : base(commbox)
        {
            this.options = options;

            FailureCmdsInit();

            ProtocolInit();

            DataStreamInit();
        }
예제 #2
0
        public bool Config(object options)
        {
            if (!(options is MikuniOptions))
            {
                return(false);
            }

            this.options = options as MikuniOptions;

            byte parity = 0;
            byte cmd2   = SET_NULL;
            byte cmd3   = SET_NULL;

            if (this.options.Parity == MikuniParity.None)
            {
                parity = BIT9_MARK;
                cmd2   = 0xFF;
                cmd3   = 0x02;
            }
            else
            {
                parity = BIT9_EVEN;
                cmd2   = 0xFF;
                cmd3   = 0x03;
            }

            if (!Box.SetCommCtrl((byte)(PWC | RZFC | CK | REFC), SET_NULL) ||
                !Box.SetCommLine(SK_NO, RK1) ||
                !Box.SetCommLink((byte)(RS_232 | parity | SEL_SL | UN_DB20), cmd2, cmd3) ||
                !Box.SetCommBaud(19200) ||
                !Box.SetCommTime(SETBYTETIME, Core.Timer.FromMilliseconds(5)) ||
                !Box.SetCommTime(SETWAITTIME, Core.Timer.FromMilliseconds(0)) ||
                !Box.SetCommTime(SETRECBBOUT, Core.Timer.FromMilliseconds(500)) ||
                !Box.SetCommTime(SETRECFROUT, Core.Timer.FromMilliseconds(500)) ||
                !Box.SetCommTime(SETLINKTIME, Core.Timer.FromMilliseconds(500)))
            {
                return(false);
            }

            Thread.Sleep(TimeSpan.FromSeconds(1));
            return(true);
        }
예제 #3
0
        public bool Config(object options)
        {
            if (!(options is MikuniOptions))
            {
                return false;
            }

            this.options = options as MikuniOptions;

            byte parity = 0;
            byte cmd2 = SET_NULL;
            byte cmd3 = SET_NULL;

            if (this.options.Parity == MikuniParity.None)
            {
                parity = BIT9_MARK;
                cmd2 = 0xFF;
                cmd3 = 0x02;
            }
            else
            {
                parity = BIT9_EVEN;
                cmd2 = 0xFF;
                cmd3 = 0x03;
            }
            
            if (!Box.SetCommCtrl((byte)(PWC | RZFC | CK | REFC), SET_NULL) ||
                !Box.SetCommLine(SK_NO, RK1) ||
                !Box.SetCommLink((byte)(RS_232 | parity | SEL_SL | UN_DB20), cmd2, cmd3) ||
                !Box.SetCommBaud(19200) ||
                !Box.SetCommTime(SETBYTETIME, Core.Timer.FromMilliseconds(5)) ||
                !Box.SetCommTime(SETWAITTIME, Core.Timer.FromMilliseconds(0)) ||
                !Box.SetCommTime(SETRECBBOUT, Core.Timer.FromMilliseconds(500)) ||
                !Box.SetCommTime(SETRECFROUT, Core.Timer.FromMilliseconds(500)) ||
                !Box.SetCommTime(SETLINKTIME, Core.Timer.FromMilliseconds(500)))
            {
                return false;
            }

            Thread.Sleep(TimeSpan.FromSeconds(1));
            return true;
        }