public static string EthHostModeToString(NurApi.DevInfoData devInfoData) { if (devInfoData.status > 0) { return("Connected"); } else { return("Disconnected"); } }
private void deviceView_SelectedIndexChanged(object sender, EventArgs e) { try { if (deviceView.SelectedItems.Count > 0) { NurApi.DevInfoData data = (NurApi.DevInfoData)deviceView.SelectedItems[0].Tag; connectToolStripMenuItem.Visible = data.status == 0; disconnectToolStripMenuItem.Visible = data.status > 0; if (data.status > 0) { if (mApi.IsConnected() && ByteArraysEqual(mApi.GetEthConfig().mac, data.eth.mac)) { // Connected to this computer connectBtn.Text = "Disconnect"; connectBtn.Enabled = true; disconnectToolStripMenuItem.Enabled = true; } else { // Reserved connectBtn.Text = "Connect"; connectBtn.Enabled = false; disconnectToolStripMenuItem.Enabled = false; } } else { // Free connectBtn.Text = "Connect"; connectBtn.Enabled = true; disconnectToolStripMenuItem.Enabled = false; } return; } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString(), "Exception"); } connectBtn.Text = "Connect"; connectBtn.Enabled = false; connectToolStripMenuItem.Visible = false; disconnectToolStripMenuItem.Visible = false; }
private void beepToolStripMenuItem_Click(object sender, EventArgs e) { try { if (deviceView.SelectedItems.Count > 0) { // Send BEEP broadcast to SELECTED device ListViewItem item = deviceView.SelectedItems[0]; if (item != null) { NurApi.DevInfoData data = (NurApi.DevInfoData)item.Tag; // Convert MAC address to ASCII HEX bytes byte[] fdata = new byte[16]; string fstring = EthHelper.MacToString(data.eth.mac); fstring = fstring.Replace("-", ""); // remove separators fdata = System.Text.Encoding.ASCII.GetBytes(fstring); // Create Beep buffer byte[] beepBuf = new byte[2]; beepBuf[0] = (byte)60; // BeepTime beepBuf[1] = (byte)60; // BeepDuty // Send BEEP broadcast mApi.NurApiSendBroadcast( NurApi.BC_CMD_BEEP, NurApi.BC_FILTER_TYPE_MAC, NurApi.BC_FILTER_OP_EQUAL, fdata, fstring.Length, beepBuf, beepBuf.Length); } } else { // Send BEEP broadcast to ALL devices // Create Beep buffer byte[] beepBuf = new byte[2]; beepBuf[0] = (byte)60; // BeepTime beepBuf[1] = (byte)60; // BeepDuty // Send BEEP broadcast mApi.NurApiSendBroadcast( NurApi.BC_CMD_BEEP, NurApi.BC_FILTER_TYPE_NONE, 0, null, 0, beepBuf, beepBuf.Length); } } catch (Exception) { } }
private bool IsServer(NurApi.DevInfoData data) { bool server = true; if (data.eth.hostmode > 0) { server = false; DialogResult dr = MessageBox.Show("Unable to connect device in client mode.\nDo you want to force server mode on?", "?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr == DialogResult.Yes) { data.eth.transport = 1; //Use Broadcast data.eth.hostmode = 0; //Use Server mode mApi.SetEthConfig(ref data.eth); server = true; } } return(server); }
private void connectToolStripMenuItem_Click(object sender, EventArgs e) { try { ListViewItem item = deviceView.SelectedItems[0]; if (item != null) { NurApi.DevInfoData data = (NurApi.DevInfoData)item.Tag; if (IsServer(data)) { if (ConnectToDevice != null) { connectBtn.Enabled = false; ConnectToDevice(this, new DeviceArgs(EthHelper.IpToString(data.eth.ip), data.eth.serverPort)); } } } } catch (Exception) { } }