Blame | Last modification | View Log | RSS feed
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Timers;using MCP2221;namespace nitdcscore {public class Bridge_mcp2221 {public MchpUsbI2c usbi2c = new MchpUsbI2c();public DcsBios bios = new DcsBios();public uint speed { get; set; }public int deviceid { get; set; }Timer timer = new Timer();NITAAPDevice aap;NITAHFSDevice ahfs;public Bridge_mcp2221() {this.speed = 400000;timer.Enabled = false;timer.AutoReset = true;timer.Interval = 50;timer.Elapsed += timer_Elapsed;bios.InitUDP();}public void init() {aap = new NITAAPDevice(ref this.bios, this);ahfs = new NITAHFSDevice(ref this.bios, this);}void timer_Elapsed(object sender, ElapsedEventArgs e) {}public int SelectDevice(String devName) {if (usbi2c.Settings.GetConnectionStatus() == false)return -2;int rslt = 0;int count = usbi2c.Management.GetDevCount();for (int i = 0; i < count; i++) {rslt = usbi2c.Management.SelectDev(i);usbi2c.Settings.GetConnectionStatus();string usbDescriptor = this.usbi2c.Settings.GetUsbStringDescriptor();if (usbDescriptor == devName) {rslt = usbi2c.Management.SelectDev(i);Console.WriteLine(devName + ":" + usbDescriptor + ":" + i.ToString());this.deviceid = i;return rslt;}}return -5;}public byte ReadGpio(byte pinNum) {return Convert.ToByte(usbi2c.Functions.ReadGpioPinValue(pinNum));}public ushort ReadADC(byte pinNum) {ushort[] adcData = { 0,0,0,0,0,0 };int rslt = usbi2c.Functions.GetAdcData(adcData);//foreach (ushort adc in adcData) {// Console.Write((adc).ToString() + " ");//}//Console.WriteLine();return adcData[pinNum];}public void WriteGpio(byte pinNum, byte value) {this.usbi2c.Functions.WriteGpioPinValue(pinNum, value);}public int WriteI2cData(byte address, byte[] data, uint count) {int rslt = this.usbi2c.Functions.WriteI2cData(address, data, count, this.speed);return rslt;}public int ReadI2CData(byte address, ref byte[] data, uint count) {int rslt = this.usbi2c.Functions.ReadI2cData(address, data, count, this.speed);return rslt;}}}