//----------------------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); }
//----------------------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); }
//----------------------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); }