コード例 #1
0
ファイル: DMDongle.cs プロジェクト: DHMJ/SGM4711_Eva
        //----------------------DONGLE FUNCTIONS--------------------------------
        public bool dongleInit(string portname, VCPGROUP vg, byte devaddr, byte pilot)
        {
            if (!IsOpen)
            {
                uart.PortName = portname;
                uart.BaudRate = 9600;
                uart.DataBits = 8;
                uart.Parity   = Parity.None;
                uart.StopBits = StopBits.One;

                //uart.Handshake = Handshake.None;

                try
                {
                    uart.Open();
                    IsOpen = true;
                    //uart.DiscardInBuffer();
                    commInit(vg, devaddr, pilot);
                    //return true;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(false);
                }
            }
            return(true);
        }
コード例 #2
0
ファイル: DMDongle.cs プロジェクト: DHMJ/SGM4711_Eva
        //----------------------DUT CTL METHOD  FUNCTIONS-----------------------
        public bool commInit(VCPGROUP vg, byte devaddr, byte pilot)
        {
            if (vg == VCPGROUP.SC)
            {
                commMode = (byte)VCPGROUP.SC;
            }
            else if (vg == VCPGROUP.OWCI)
            {
                commMode = (byte)VCPGROUP.OWCI;
            }
            else if (vg == VCPGROUP.I2C)
            {
                commMode = (byte)VCPGROUP.I2C;
            }
            else if (vg == VCPGROUP.SPI)
            {
                commMode = (byte)VCPGROUP.SPI;
            }
            else
            {
                return(false);
            }

            DevAddr = devaddr;
            Pilot   = pilot;
            byte[] WriteBuf = new byte[5];

            WriteBuf[0] = 0x5A;
            WriteBuf[1] = 0x05;
            WriteBuf[2] = (byte)commMode;
            WriteBuf[3] = 0x06;
            WriteBuf[4] = DevAddr;

            uart.DiscardInBuffer();

            uart.Write(WriteBuf, 0, 5);

            uint timeOutCounter = 100;

            //while (uart.BytesToRead == 0 && timeOutCounter > 0)
            //{
            //    timeOutCounter--;
            System.Threading.Thread.Sleep(DelayBeforeRead);
            //}

            if (timeOutCounter != 0)
            {
                byte[] readBuf = new byte[uart.BytesToRead];
                uart.Read(readBuf, 0, uart.BytesToRead);
                if (readBuf[0] != 0xA5 || readBuf[1] != 0x05 || readBuf[2] != (byte)commMode || readBuf[3] != 0x06 || readBuf[4] != 0xCC)
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }

            //WriteBuf[0] = 0x5A;
            //WriteBuf[1] = 0x05;
            //WriteBuf[2] = (byte)commMode;
            //WriteBuf[3] = 0x05;
            //WriteBuf[4] = Pilot;

            //uart.DiscardInBuffer();
            //uart.Write(WriteBuf, 0, 5);

            //timeOutCounter = 200;
            //while (uart.BytesToRead == 0 && timeOutCounter > 0)
            //{
            //    timeOutCounter--;
            //    System.Threading.Thread.Sleep(10);
            //}

            //if (timeOutCounter != 0)
            //{
            //    byte[] readBuf = new byte[uart.BytesToRead];
            //    uart.Read(readBuf, 0, uart.BytesToRead);
            //    if (readBuf[0] != 0xA5 || readBuf[1] != 0x05 || readBuf[2] != (byte)commMode || readBuf[3] != 0x05 || readBuf[4] != 0xCC)
            //        return false;
            //}
            //else
            //    return false;

            return(true);
        }
コード例 #3
0
        //----------------------DUT CTL METHOD  FUNCTIONS-----------------------
        public bool commInit(VCPGROUP vg, byte devaddr, byte pilot)
        {
            if (vg == VCPGROUP.SC)
            {
                commMode = (byte)VCPGROUP.SC;
            }
            else if (vg == VCPGROUP.OWCI)
            {
                commMode = (byte)VCPGROUP.OWCI;
            }
            else if (vg == VCPGROUP.I2C)
            {
                commMode = (byte)VCPGROUP.I2C;
            }
            else if (vg == VCPGROUP.SPI)
            {
                commMode = (byte)VCPGROUP.SPI;
            }
            else
            {
                return(false);
            }

            DevAddr = devaddr;
            Pilot   = pilot;
            byte[] WriteBuf = new byte[4];

            WriteBuf[0] = 0x5A;
            WriteBuf[1] = (byte)commMode;
            WriteBuf[2] = 0x06;
            WriteBuf[3] = DevAddr;
            uart.Write(WriteBuf, 0, 4);

            uint timeOutCounter = 200;

            while (uart.BytesToRead == 0 && timeOutCounter > 0)
            {
                timeOutCounter--;
                System.Threading.Thread.Sleep(10);
            }

            if (timeOutCounter != 0)
            {
                byte[] readBuf = new byte[uart.BytesToRead];
                uart.Read(readBuf, 0, uart.BytesToRead);
                if (readBuf[0] != 0xA5 || readBuf[1] != (byte)commMode || readBuf[2] != 0x06 || readBuf[3] != 0xCC)
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }

            WriteBuf[0] = 0x5A;
            WriteBuf[1] = (byte)commMode;
            WriteBuf[2] = 0x05;
            WriteBuf[3] = Pilot;
            uart.Write(WriteBuf, 0, 4);

            timeOutCounter = 200;
            while (uart.BytesToRead == 0 && timeOutCounter > 0)
            {
                timeOutCounter--;
                System.Threading.Thread.Sleep(10);
            }

            if (timeOutCounter != 0)
            {
                byte[] readBuf = new byte[uart.BytesToRead];
                uart.Read(readBuf, 0, uart.BytesToRead);
                if (readBuf[0] != 0xA5 || readBuf[1] != (byte)commMode || readBuf[2] != 0x05 || readBuf[3] != 0xCC)
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }

            return(true);
        }