public DeviceType(DeviceTypeID a_typeID) { this._licenseList = new List<LicenseItem>(); this._compatibleComponentDescriptor = new CompatibleDeviceDescriptor(); this._deviceVersionList = new List<DeviceVersion>(); this._typeID = a_typeID; }
public DeviceType(string a_typeName) { this._licenseList = new List<LicenseItem>(); this._compatibleComponentDescriptor = new CompatibleDeviceDescriptor(); this._deviceVersionList = new List<DeviceVersion>(); try { Enum.GetNames(typeof(DeviceTypeID)); this._typeID = (DeviceTypeID) Enum.Parse(typeof(DeviceTypeID), a_typeName); } catch (Exception exception) { MessageBox.Show(exception.Message, "Incompatible Device Type Name"); } }
private bool isDeviceAlive(IOPortAddress iopaddr, out bool bootLoaderMode, out DeviceTypeID deviceType) { string command_CR = "\r"; DataBuffer data = new DataBuffer(100); bootLoaderMode = false; deviceType = DeviceTypeID.Unknown; if (iopaddr.handle == null) return false; if (iopaddr.handle.isInvalid()) { _log.Warn("Called with INVALID handle"); return false; } int writeRetryCnt = int.Parse(ConfigurationManager.AppSettings["WriteRetryCnt"]); int readRetryCnt = int.Parse(ConfigurationManager.AppSettings["ReadRetryCnt"]); while (writeRetryCnt > 0) { data.copy(command_CR); if (write(iopaddr.handle, data) < 0) { Thread.Sleep(10); writeRetryCnt--; } else { _log.Debug("[CR] was sent"); data.NumItems = 0; int readCount = readRetryCnt; while (readCount > 0) { if (readAppend(iopaddr.handle, data, data.Capacity - data.NumItems) < 0) readCount--; else { if (data.endsWith("OK\n\r>")) { _log.Debug("Device looks to be alive"); return true; } Thread.Sleep(20); readCount--; } } Thread.Sleep(20); writeRetryCnt--; } } _log.Debug("Device to be checked with RTS control enabled"); close(iopaddr.handle); iopaddr.handle = open(iopaddr, 19200, 'E'); _log.Debug("Port opened by isDeviceAlive()@19200:" + iopaddr.comAddr.COMPortId + " DTR Enabled"); writeRetryCnt = int.Parse(ConfigurationManager.AppSettings["WriteRetryCnt"]); readRetryCnt = int.Parse(ConfigurationManager.AppSettings["ReadRetryCnt"]); while (writeRetryCnt > 0) { data.copy(command_CR); if (write(iopaddr.handle, data) < 0) { Thread.Sleep(10); writeRetryCnt--; } else { _log.Debug("isDeviceAlive():: '\r' sent"); data.NumItems = 0; int num4 = readRetryCnt; while (num4 > 0) { if (readAppend(iopaddr.handle, data, data.Capacity - data.NumItems) < 0) { Thread.Sleep(10); num4--; } else { _log.Debug("isDeviceAlive():: response to '\r':" + data.BufToStr); if (data.BufToStr.Contains("OK\n\r>")) return true; Thread.Sleep(20); num4--; } } Thread.Sleep(20); writeRetryCnt--; } } close(iopaddr.handle); _log.Debug("Port closed by isDeviceAlive()@19200:" + iopaddr.comAddr.COMPortId); iopaddr.handle = open(iopaddr, 115200, 'D'); _log.Debug("Port opened by isDeviceAlive()@115200:" + iopaddr.comAddr.COMPortId); for (int i = 0; i < 4; i++) { data.copy("J"); if (write(iopaddr.handle, data) < 0) Thread.Sleep(10); Thread.Sleep(50); _log.Debug("isDeviceAlive():: 'J' sent"); data.NumItems = 0; int readCnt = readRetryCnt; while (readCnt > 0) { if (readAppend(iopaddr.handle, data, data.Capacity - data.NumItems) < 0) { Thread.Sleep(10); readCnt--; } else { _log.Debug("isDeviceAlive():: response to 'J':" + data.BufToStr); if (data.endsWith("OK\r\n>\r\n")) { deviceType = DeviceTypeID.SDBC_8; bootLoaderMode = true; return true; } Thread.Sleep(20); readCnt--; } } } writeRetryCnt = int.Parse(ConfigurationManager.AppSettings["WriteRetryCnt"]); readRetryCnt = int.Parse(ConfigurationManager.AppSettings["ReadRetryCnt"]); while (writeRetryCnt > 0) { data.copy("OK\n\r>"); if (write(iopaddr.handle, data) < 0) { Thread.Sleep(10); writeRetryCnt--; } else { _log.Debug("[CRLF] sent"); data.NumItems = 0; int num7 = readRetryCnt; while (num7 > 0) { if (readAppend(iopaddr.handle, data, data.Capacity - data.NumItems) < 0) { Thread.Sleep(10); num7--; } else { _log.Debug("Response to [CRLF]:" + data.BufToStr); if (data.endsWith("OK\n\r>")) return true; Thread.Sleep(20); num7--; } } Thread.Sleep(20); writeRetryCnt--; } } return false; }
public void addDeviceType(DeviceTypeID a_type) { DeviceType item = new DeviceType(a_type); this._deviceTypeList.Add(item); }
public CompatibleDeviceDescriptor(DeviceTypeID a_dev) { this._deviceTypeList = new List<DeviceType>(); this.addDeviceType(a_dev); }
public bool ContainsDeviceTypeID(DeviceTypeID typeId) { foreach (DeviceType type in this._deviceTypeList) { if (type.TypeID == typeId) { return true; } } return false; }
private bool isDeviceAlive(IOPortAddress iopaddr, out DeviceTypeID deviceType) { DataBuffer data = new DataBuffer(0x40); deviceType = DeviceTypeID.Unknown; if (iopaddr.handle.isInvalid()) { _log.Warn("Called with INVALID handle"); return false; } if (this.GetFeatureReport(iopaddr.handle, 0x10, data) < 0) { _log.Debug("Device accessibility check failed."); return false; } switch (data[1]) { case 0: deviceType = DeviceTypeID.SRW006; break; case 1: deviceType = DeviceTypeID.SRW006; break; } return true; }