using System; using System.Text; using System.Linq; using System.Drawing; using System.Diagnostics; using System.Windows.Forms; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using Tango.PMR.Stubs; using Tango.Stubs; //---------------------- const Int32 I2C_ID = 4; //MCU_I2C4 const Int32 TCA9548A_address = 0xE2; //const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte & 128kByte const Int32 I2C_Slave_Add = 0xA2; //eeprom address - only in the eeprom of 128kByte int Dispenser_ID = 6; //Software Dispensers 0..7, BP Dispensers 1..8 //---------------------- int enable_all_channel() { StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); stubI2CWriteBytesRequest.I2CId = I2C_ID; stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; stubI2CWriteBytesRequest.BytesTWrite.Add(0xff);//enable all 8 i2c channel var response = stubManager.Run(stubI2CWriteBytesRequest); return 1; } int enable_channel(int Channel_ID) { uint Const_temp = 0x01; StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); stubI2CWriteBytesRequest.I2CId = I2C_ID; stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; Const_temp = Const_temp << Channel_ID; stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1 var response = stubManager.Run(stubI2CWriteBytesRequest); return 1; } int adc_write(uint I2C_Slave_Add) { StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); stubI2CWriteBytesRequest.I2CId = I2C_ID; stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; UInt32 uInt32 = new UInt32(); stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write //-------------------------------------------------------------- stubI2CWriteBytesRequest.BytesTWrite.Add(0x12);//Data 0 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0x34);//Data 1 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0x56);//Data 2 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0x78);//Data 3 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0x90);//Data 4 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB);//Data 5 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD);//Data 6 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF);//Data 7 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Data 8 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Data 9 to write var response = stubManager.Run(stubI2CWriteBytesRequest); return 1; } int adc_set_for_read_ch(uint I2C_Slave_Add) { StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); stubI2CWriteBytesRequest.I2CId = I2C_ID; stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; UInt32 uInt32 = new UInt32(); stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write var response = stubManager.Run(stubI2CWriteBytesRequest); return 1; } int adc_read_ch(uint I2C_Slave_Add) { StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); stubI2CReadBytesRequest.I2CId = I2C_ID; stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read var response1 = stubManager.Run(stubI2CReadBytesRequest); uint temph=0; for(int i=0; i Disp0enser 0-7 for (int i = 0; i<100; i++) { adc_write(I2C_Slave_Add); Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) stubManager.Write("\n#"); stubManager.Write(i); stubManager.Write("\t- The Buffer is: "); adc_set_for_read_ch(I2C_Slave_Add); //Thread.Sleep(1); //Sleep for 10 milli. adc_read_ch(I2C_Slave_Add); Thread.Sleep(1000); } }