public ThreadMgr(DeviceForm deviceForm) { rspDataIn = new RspDataInThread(deviceForm); txDataOut = new TxDataOutThread(); rxDataIn = new RxDataInThread(deviceForm); rxTxMgr = new RxTxMgrThread(); }
public void ShouldCreateAGateway() { var form = new DeviceForm { Type = DeviceType.GATEWAY, ID = "42", SerialNumber = "42", FirmwareVersion = "1.2", State = "Online", IP = "5.6.7.8", Port = 666 }; var actual = deviceFactoryUT.CreateDevice(form); Assert.That(actual, Is.InstanceOf <Gateway>()); var actualDevice = actual as Gateway; Assert.That(actualDevice.ID, Is.EqualTo(form.ID)); Assert.That(actualDevice.SerialNumber, Is.EqualTo(form.SerialNumber)); Assert.That(actualDevice.FirmwareVersion, Is.EqualTo(form.FirmwareVersion)); Assert.That(actualDevice.State, Is.EqualTo(form.State)); Assert.That(actualDevice.IP, Is.EqualTo(form.IP)); Assert.That(actualDevice.Port, Is.EqualTo(form.Port)); }
public AttReadByGrpTypeRsp(DeviceForm deviceForm) { devForm = deviceForm; attrUuidUtils = new AttrUuidUtils(); attrDataUtils = new AttrDataUtils(deviceForm); sendCmds = new SendCmds(deviceForm); }
public bool DisconnectDevice(DeviceForm devForm) { bool flag = false; ConnectInfo connectInfo = devForm.disconnectInfo; if (devForm != null) { foreach (TreeNode treeNode in tvPorts.Nodes) { if (((DeviceInfo)treeNode.Tag).ComPortInfo.ComPort == devForm.devInfo.ComPortInfo.ComPort) { string target = string.Format("Handle: 0x{0:X4}", connectInfo.Handle); SharedObjects.Log.Write(Logging.MsgType.Debug, ComPortTreeForm.moduleName, "Disconnecting Device " + target); if (flag = treeViewUtils.TreeNodeTextSearchAndDestroy(treeNode, target)) { break; } } if (flag) { break; } } } else { flag = false; } return(flag); }
public AttFindInfoRsp(DeviceForm deviceForm) { m_deviceForm = deviceForm; m_sendCmds = new SendCmds(deviceForm); m_attrUuidUtils = new AttrUuidUtils(); m_attrDataUtils = new AttrDataUtils(deviceForm); }
public ActionResult Create(DeviceForm form) { try { if (form.Type == DeviceType.GATEWAY && string.IsNullOrWhiteSpace(form.IP)) { ModelState.AddModelError("IP", Resources.IPRequired); } else if (ModelState.IsValid) { if (dbAccess.SaveDevice(deviceFactory.CreateDevice(form))) { return(RedirectToAction("Index")); } ModelState.AddModelError("ID", Resources.IDAndSNPresent); return(View(form)); } return(View(form)); } catch { ViewData["ErrorMessage"] = Resources.ErrorWhileSavingDevice; return(View()); } }
private DeviceForm GetActiveDeviceForm() { DeviceForm deviceForm = null; if (InvokeRequired) { try { Invoke((Delegate) new GetActiveDeviceFormDelegate(GetActiveDeviceForm)); } catch { } } else { m_mutex.WaitOne(); foreach (Control control in plDevice.Controls) { if (control.GetType().BaseType == typeof(Form)) { Form form = control as Form; if (form != null && form.Visible) { deviceForm = (DeviceForm)form; break; } } } m_mutex.ReleaseMutex(); } return(deviceForm); }
private void SendGattDiscoverCmds(TreeNode treeNode, TxDataOut.CmdTypes cmdType) { DeviceForm deviceForm = GetActiveDeviceFormCallback(); if (deviceForm == null || treeNode == null || !(treeNode.Name == "HostHandle") && !(treeNode.Name == "SlaveHandle")) { return; } string str = treeNode.Text.Replace("Handle: ", ""); if (str != null) { try { ushort handle = Convert.ToUInt16(str, 16); deviceForm.sendCmds.SendGATT(new HCICmds.GATTCmds.GATT_DiscAllPrimaryServices() { connHandle = handle }, cmdType); deviceForm.sendCmds.SendGATT(new HCICmds.GATTCmds.GATT_DiscAllCharDescs() { connHandle = handle }, cmdType); } catch { } } }
public virtual async Task <IActionResult> UserCode(DeviceForm form) { if (form == null) { throw new ArgumentNullException(nameof(form)); } return(await this.Index(form.UserCode)); }
private void AddDeviceForm() { if (InvokeRequired) { try { Invoke((Delegate) new AddDeviceFormDelegate(AddDeviceForm)); } catch { } } else { m_mutex.WaitOne(); DeviceForm deviceForm = new DeviceForm(); if (deviceForm == null) { return; } deviceForm.BDAddressNotify += new EventHandler(DeviceBDAddressNotify); deviceForm.ConnectionNotify += new EventHandler(DeviceConnectionNotify); deviceForm.DisconnectionNotify += new EventHandler(DeviceDisconnectionNotify); deviceForm.ChangeActiveRoot += new EventHandler(DeviceChangeActiveRoot); deviceForm.CloseActiveDevice += new EventHandler(DeviceCloseActiveDevice); if (deviceForm.DeviceFormInit()) { deviceForm.TopLevel = false; deviceForm.Parent = plDevice; deviceForm.Dock = DockStyle.Fill; foreach (Control control in plDevice.Controls) { if (control.GetType().BaseType == typeof(Form)) { Form form = (Form)control; if (form.Visible) { form.Hide(); break; } } } deviceForm.Show(); AddToTreeDeviceInfo(deviceForm.devInfo, deviceForm); comPortTreeForm.ClearSelectedNode(); deviceForm.SendGAPDeviceInit(); } else { deviceForm.DeviceFormClose(false); } m_mutex.ReleaseMutex(); } }
public RxDataInThread(DeviceForm deviceForm) { rxDataInRspData = new RxDataInRspData(deviceForm); taskThread = new Thread(new ParameterizedThreadStart(TaskThread)); taskThread.Name = "RxDataInThread"; taskThread.Start(threadData); Thread.Sleep(0); while (!taskThread.IsAlive) { } }
public bool AddConnectionInfo(DeviceForm devForm) { bool flag = true; ConnectInfo connectInfo = devForm.GetConnectInfo(); if (devForm != null) { foreach (TreeNode treeNode in tvPorts.Nodes) { DeviceInfo deviceInfo = (DeviceInfo)treeNode.Tag; if (deviceInfo.ComPortInfo.ComPort == devForm.devInfo.ComPortInfo.ComPort) { TreeNode node1 = new TreeNode(); node1.Name = ComPortTreeForm.NodeNames.ConnectionInfo.ToString(); node1.Text = string.Format("Connection Info:"); node1.NodeFont = underlineFont; node1.Tag = treeNode.Tag; node1.ToolTipText = string.Format("Device Connection Information (Over the Air Connection)"); TreeNode node2 = new TreeNode(); node2.Name = ComPortTreeForm.NodeNames.SlaveHandle.ToString(); node2.Text = string.Format("Handle: 0x{0:X4}", connectInfo.Handle); deviceInfo.ConnectInfo.Handle = connectInfo.Handle; node2.Tag = treeNode.Tag; node2.ToolTipText = string.Format("Connection Handle\nSelect Handle Then Right Click To See Options."); TreeNode node3 = new TreeNode(); node3.Name = ComPortTreeForm.NodeNames.SlaveAddrType.ToString(); node3.Text = string.Format("Addr Type: 0x{0:X2} ({1:S})", connectInfo.AddrType, devUtils.GetGapAddrTypeStr(connectInfo.AddrType)); node3.Tag = treeNode.Tag; node3.ToolTipText = string.Format("Address Type"); TreeNode node4 = new TreeNode(); node4.Name = ComPortTreeForm.NodeNames.SlaveBda.ToString(); node4.Text = string.Format("Slave BDA: {0:S}", connectInfo.BDA); node4.Tag = treeNode.Tag; node4.ToolTipText = string.Format("Slave Bluetooth Device Address\nSelect Address Then Right Click To See Options."); treeNode.Nodes.Add(node1); node1.Nodes.Add(node2); node1.Nodes.Add(node3); node1.Nodes.Add(node4); node1.Expand(); } } } else { flag = false; } return(flag); }
public void ShouldNotCreateAnythingIfTheFormIsNull() { DeviceForm form = null; var result = (ViewResult)controllerUT.Create(form); dbAccessMock.Verify( dbm => dbm.SaveDevice(It.IsAny <IDevice>()), Times.Never()); Assert.That(controllerUT.ViewData["ErrorMessage"], Is.Not.Null); Assert.That(result.Model, Is.Null); }
private void tsmiCloseDevice_Click(object sender, EventArgs e) { m_mutex.WaitOne(); DeviceForm activeDeviceForm = GetActiveDeviceForm(); if (activeDeviceForm != null) { activeDeviceForm.DeviceFormClose(true); activeDeviceForm.Close(); comPortTreeForm.RemovePort(activeDeviceForm.devInfo.ComPortInfo.ComPort); } comPortTreeForm.FindNodeToOpen(); m_mutex.ReleaseMutex(); }
public bool FindNodeToOpen() { bool flag = true; foreach (TreeNode treeNode in tvPorts.Nodes) { DeviceForm deviceForm = ((DeviceInfo)treeNode.Tag).DevForm; if (deviceForm != null) { deviceForm.Show(); treeNode.NodeFont = underlineFont; } } return(flag); }
private void tsmiClearTransmitQ_Click(object sender, EventArgs e) { DeviceForm deviceForm = GetActiveDeviceFormCallback(); if (deviceForm == null) { return; } int qlength = deviceForm.threadMgr.txDataOut.dataQ.GetQLength(); deviceForm.threadMgr.txDataOut.dataQ.ClearQ(); string msg = "Pending Transmit Messages Cleared\n" + qlength.ToString() + " Messages Were Discarded\n"; deviceForm.DisplayMsg(SharedAppObjs.MsgType.Info, msg); msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Info, msg); }
public void ShouldAddAModelStateErrorIfADeviceWithSameIDAndSerialNumberIsPresent() { var form = new DeviceForm { Type = DeviceType.WATER_METER, ID = "AlreadyExists", SerialNumber = "AlreadyExists", FirmwareVersion = "1.5", State = "Offline" }; var result = (ViewResult)controllerUT.Create(form); Assert.That(result.Model, Is.EqualTo(form)); Assert.False(controllerUT.ModelState.IsValid); }
public bool ChangeActiveRoot(DeviceForm devForm) { bool flag = false; if (devForm != null) { foreach (TreeNode treeNode in tvPorts.Nodes) { treeNode.NodeFont = !(((DeviceInfo)treeNode.Tag).DevName == devForm.devInfo.DevName) ? regularFont : underlineFont; } } else { flag = false; } return(flag); }
public bool AddDeviceInfo(DeviceForm devForm) { bool flag = true; string str = devForm.BDAddressStr; if (devForm != null) { foreach (TreeNode treeNode in tvPorts.Nodes) { DeviceInfo deviceInfo = (DeviceInfo)treeNode.Tag; if (deviceInfo.ComPortInfo.ComPort == devForm.devInfo.ComPortInfo.ComPort) { TreeNode node1 = new TreeNode(); node1.Name = ComPortTreeForm.NodeNames.DeviceInfo.ToString(); node1.Text = string.Format("Device Info:"); node1.NodeFont = underlineFont; node1.Tag = treeNode.Tag; node1.ToolTipText = string.Format("Information About The Direct Connect Device."); TreeNode node2 = new TreeNode(); node2.Name = ComPortTreeForm.NodeNames.HostHandle.ToString(); node2.Text = string.Format("Handle: 0x{0:X4}", 65534); deviceInfo.Handle = 65534; node2.Tag = treeNode.Tag; node2.ToolTipText = string.Format("Device Handle\nSelect Handle Then Right Click To See Options."); TreeNode node3 = new TreeNode(); node3.Name = ComPortTreeForm.NodeNames.HostBda.ToString(); node3.Text = string.Format("BDAddr: {0:S}", str); node3.Tag = treeNode.Tag; node3.ToolTipText = string.Format("Bluetooth Device Address\nSelect Address Then Right Click To See Options."); if (treeNode.FirstNode.NextNode == null) { treeNode.Nodes.Add(node1); node1.Nodes.Add(node2); node1.Nodes.Add(node3); node1.Expand(); } } } } else { flag = false; } return(flag); }
public void ShouldCreateANewElectricityMeter() { var form = new DeviceForm { Type = DeviceType.ELECTRICITY_METER, ID = "42", SerialNumber = "42", FirmwareVersion = "1.1", State = "Disconnected" }; var result = (RedirectToRouteResult)controllerUT.Create(form); dbAccessMock.Verify( dbm => dbm.SaveDevice(It.Is <IDevice>(d => d is ElectricityMeter)), Times.Once()); Assert.That(result.RouteValues["action"], Is.EqualTo("Index")); }
public void ShouldNotCreateADeviceIfTheSerialNumberIsMissing() { var form = new DeviceForm { Type = DeviceType.WATER_METER, ID = "42", SerialNumber = null, FirmwareVersion = "1.4", State = "Connected" }; controllerUT.ModelState.AddModelError("SerialNumber", "Missing serial number"); var result = (ViewResult)controllerUT.Create(form); dbAccessMock.Verify( dbm => dbm.SaveDevice(It.Is <IDevice>(d => d is WaterMeter)), Times.Never()); Assert.That(result.Model, Is.EqualTo(form)); }
public void ShouldCreateANewGateway() { var form = new DeviceForm { Type = DeviceType.GATEWAY, ID = "42", SerialNumber = "42", FirmwareVersion = "1.2", State = "Online", IP = "5.6.7.8", Port = 666 }; var result = (RedirectToRouteResult)controllerUT.Create(form); dbAccessMock.Verify( dbm => dbm.SaveDevice(It.Is <IDevice>(d => d is Gateway)), Times.Once()); Assert.That(result.RouteValues["action"], Is.EqualTo("Index")); }
public void ShouldNotCreateAGatewayIfTheIPIsMissing() { var form = new DeviceForm { Type = DeviceType.GATEWAY, ID = "42", SerialNumber = "42", FirmwareVersion = "1.6", State = "Connected", IP = null, Port = null }; var result = (ViewResult)controllerUT.Create(form); dbAccessMock.Verify( dbm => dbm.SaveDevice(It.Is <IDevice>(d => d is WaterMeter)), Times.Never()); Assert.That(result.Model, Is.EqualTo(form)); }
private void DeviceChangeActiveRoot(object sender, EventArgs e) { if (InvokeRequired) { try { Invoke((Delegate) new DeviceChangeActiveRootDelegate(DeviceChangeActiveRoot), sender, e); } catch { } } else { m_mutex.WaitOne(); DeviceForm devForm = sender as DeviceForm; if (devForm != null) { comPortTreeForm.ChangeActiveRoot(devForm); } m_mutex.ReleaseMutex(); } }
private void DeviceDisconnectionNotify(object sender, EventArgs e) { if (InvokeRequired) { try { Invoke((Delegate) new DeviceDisconnectionNotifyDelegate(DeviceConnectionNotify), sender, e); } catch { } } else { m_mutex.WaitOne(); DeviceForm devForm = sender as DeviceForm; if (devForm != null) { comPortTreeForm.DisconnectDevice(devForm); } m_mutex.ReleaseMutex(); } }
public void ShouldCreateAWaterMeter() { var form = new DeviceForm { Type = DeviceType.WATER_METER, ID = "42", SerialNumber = "42", FirmwareVersion = "1.0", State = "Connected" }; var actual = deviceFactoryUT.CreateDevice(form); Assert.That(actual, Is.InstanceOf <WaterMeter>()); var actualDevice = actual as WaterMeter; Assert.That(actualDevice.ID, Is.EqualTo(form.ID)); Assert.That(actualDevice.SerialNumber, Is.EqualTo(form.SerialNumber)); Assert.That(actualDevice.FirmwareVersion, Is.EqualTo(form.FirmwareVersion)); Assert.That(actualDevice.State, Is.EqualTo(form.State)); }
public void ShouldCreateAnElectricityMeter() { var form = new DeviceForm { Type = DeviceType.ELECTRICITY_METER, ID = "42", SerialNumber = "42", FirmwareVersion = "1.1", State = "Disconnected" }; var actual = deviceFactoryUT.CreateDevice(form); Assert.That(actual, Is.InstanceOf <ElectricityMeter>()); var actualDevice = actual as ElectricityMeter; Assert.That(actualDevice.ID, Is.EqualTo(form.ID)); Assert.That(actualDevice.SerialNumber, Is.EqualTo(form.SerialNumber)); Assert.That(actualDevice.FirmwareVersion, Is.EqualTo(form.FirmwareVersion)); Assert.That(actualDevice.State, Is.EqualTo(form.State)); }
public RspDataInThread(DeviceForm deviceForm) { ExtCmdStatus = new ExtCmdStatus(); AttErrorRsp = new AttErrorRsp(); m_attFindInfoRsp = new AttFindInfoRsp(deviceForm); m_attFindByTypeValueRsp = new AttFindByTypeValueRsp(deviceForm); m_attReadByTypeRsp = new AttReadByTypeRsp(deviceForm); AttReadRsp = new AttReadRsp(deviceForm); AttReadBlobRsp = new AttReadBlobRsp(deviceForm); m_attReadByGrpTypeRsp = new AttReadByGrpTypeRsp(deviceForm); AttWriteRsp = new AttWriteRsp(); AttPrepareWriteRsp = new AttPrepareWriteRsp(); AttExecuteWriteRsp = new AttExecuteWriteRsp(); AttHandleValueNotification = new AttHandleValueNotification(deviceForm); AttHandleValueIndication = new AttHandleValueIndication(deviceForm); m_taskThread = new Thread(new ParameterizedThreadStart(TaskThread)); m_taskThread.Name = moduleName; m_taskThread.Start(m_threadData); Thread.Sleep(0); while (!m_taskThread.IsAlive) { } }
public bool RemoveAll() { bool flag = false; if (tvPorts.Nodes != null) { foreach (TreeNode treeNode in tvPorts.Nodes) { if (treeNode != null) { DeviceForm deviceForm = ((DeviceInfo)treeNode.Tag).DevForm; deviceForm.DeviceFormClose(true); deviceForm.Close(); treeViewUtils.RemoveTextFromTree((TreeView)tvPorts, deviceForm.devInfo.ComPortInfo.ComPort); } } } else { flag = false; } return(flag); }
/// <summary> /// <see cref="IDeviceFactory.CreateDevice(DeviceForm)"/> /// </summary> public IDevice CreateDevice(DeviceForm form) { switch (form.Type) { case DeviceType.WATER_METER: return(new WaterMeter { ID = form.ID, SerialNumber = form.SerialNumber, FirmwareVersion = form.FirmwareVersion, State = form.State }); case DeviceType.ELECTRICITY_METER: return(new ElectricityMeter { ID = form.ID, SerialNumber = form.SerialNumber, FirmwareVersion = form.FirmwareVersion, State = form.State }); case DeviceType.GATEWAY: return(new Gateway { ID = form.ID, SerialNumber = form.SerialNumber, FirmwareVersion = form.FirmwareVersion, State = form.State, IP = form.IP, Port = form.Port }); default: throw new ArgumentException("Unknown device type"); } }