public bool WriteModeI2C(ModeI2C i2c = ModeI2C.I2C_S_100KHZ, TypeIO io1 = TypeIO.DIGITAL_INPUT, TypeIO io2 = TypeIO.DIGITAL_INPUT) { byte val = (byte)(((byte)io1) | ((byte)io2 << 2)); try { this.DiscardInBuffer(); this.Write(CommandPrefixISS.USB_ISS, CommandISS.ISS_MODE, i2c, val); return(this.ReadByte() == 0xFF && this.ReadByte() == 0x00); } catch (TimeoutException) { this.DiscardInBuffer(); this.DiscardOutBuffer(); return(false); } }
public bool WriteModeSerialI2C(int baudRate = 9600, ModeI2C i2c = ModeI2C.I2C_H_100KHZ) { baudRate = (48000000 / (16 + baudRate)) - 1; if (baudRate > short.MaxValue) { return(false); } try { this.DiscardInBuffer(); this.Write(CommandPrefixISS.USB_ISS, CommandISS.ISS_MODE, (byte)i2c | (byte)Mode.SERIAL, (byte)((baudRate >> 8) & 0xff), (byte)(baudRate & 0xFF)); return(this.ReadByte() == 0xFF && this.ReadByte() == 0x00); } catch (TimeoutException) { this.DiscardInBuffer(); this.DiscardOutBuffer(); return(false); } }