private void writeConfig_Click(object sender, EventArgs e) { if (m_DeviceType == BSSDK.BS_DEVICE_BEPLUS || m_DeviceType == BSSDK.BS_DEVICE_XPASS) { m_ConfigBEPlus.useDHCP = DHCP.Checked; m_ConfigBEPlus.useServer = useServer.Checked; m_ConfigBEPlus.synchTime = synchTime.Checked; IPAddress addr = IPAddress.Parse(ipAddr.Text); m_ConfigBEPlus.ipAddr = (uint)addr.Address; addr = IPAddress.Parse(gateway.Text); m_ConfigBEPlus.gateway = (uint)addr.Address; addr = IPAddress.Parse(subnetMask.Text); m_ConfigBEPlus.subnetMask = (uint)addr.Address; addr = IPAddress.Parse(serverIP.Text); m_ConfigBEPlus.serverIpAddr = (uint)addr.Address; m_ConfigBEPlus.port = Int32.Parse(port.Text); int configSize = Marshal.SizeOf(m_ConfigBEPlus); IntPtr config = Marshal.AllocHGlobal(configSize); Marshal.StructureToPtr(m_ConfigBEPlus, config, true); Cursor.Current = Cursors.WaitCursor; int result = BSSDK.BS_WriteConfigUDP(m_Handle, m_DeviceAddr, m_DeviceID, BSSDK.BEPLUS_CONFIG, configSize, config); Marshal.FreeHGlobal(config); Cursor.Current = Cursors.Default; if (result != BSSDK.BS_SUCCESS) { MessageBox.Show("Cannot write the configuration", "Error"); } } else if (m_DeviceType == BSSDK.BS_DEVICE_BIOLITE) { m_ConfigBLN.useDHCP = DHCP.Checked; m_ConfigBLN.useServer = useServer.Checked; m_ConfigBLN.synchTime = synchTime.Checked; IPAddress addr = IPAddress.Parse(ipAddr.Text); m_ConfigBLN.ipAddr = (uint)addr.Address; addr = IPAddress.Parse(gateway.Text); m_ConfigBLN.gateway = (uint)addr.Address; addr = IPAddress.Parse(subnetMask.Text); m_ConfigBLN.subnetMask = (uint)addr.Address; addr = IPAddress.Parse(serverIP.Text); m_ConfigBLN.serverIpAddr = (uint)addr.Address; m_ConfigBLN.port = Int32.Parse(port.Text); int configSize = Marshal.SizeOf(m_ConfigBLN); IntPtr config = Marshal.AllocHGlobal(configSize); Marshal.StructureToPtr(m_ConfigBLN, config, true); Cursor.Current = Cursors.WaitCursor; int result = BSSDK.BS_WriteConfigUDP(m_Handle, m_DeviceAddr, m_DeviceID, BSSDK.BLN_CONFIG, configSize, config); Marshal.FreeHGlobal(config); Cursor.Current = Cursors.Default; if (result != BSSDK.BS_SUCCESS) { MessageBox.Show("Cannot write the configuration", "Error"); } } else if (m_DeviceType == BSSDK.BS_DEVICE_BIOSTATION) { m_ConfigBST.useDHCP = DHCP.Checked; m_ConfigBST.useServer = useServer.Checked; m_ConfigBST.syncTimeWithServer = synchTime.Checked; byte[] addr = Encoding.ASCII.GetBytes(ipAddr.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.ipAddr, 0, addr.Length); addr = Encoding.ASCII.GetBytes(gateway.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.gateway, 0, addr.Length); addr = Encoding.ASCII.GetBytes(subnetMask.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.subnetMask, 0, addr.Length); addr = Encoding.ASCII.GetBytes(serverIP.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.serverIP, 0, addr.Length); if (useServer.Checked) { m_ConfigBST.serverPort = UInt32.Parse(port.Text); } else { m_ConfigBST.port = UInt32.Parse(port.Text); } int configSize = Marshal.SizeOf(m_ConfigBST); IntPtr config = Marshal.AllocHGlobal(configSize); Marshal.StructureToPtr(m_ConfigBST, config, true); Cursor.Current = Cursors.WaitCursor; int result = BSSDK.BS_WriteConfigUDP(m_Handle, m_DeviceAddr, m_DeviceID, BSSDK.BS_CONFIG_TCPIP, configSize, config); Marshal.FreeHGlobal(config); Cursor.Current = Cursors.Default; if (result != BSSDK.BS_SUCCESS) { MessageBox.Show("Cannot write the configuration", "Error"); } } else if (m_DeviceType == BSSDK.BS_DEVICE_DSTATION) { m_ConfigBST.useDHCP = DHCP.Checked; m_ConfigBST.useServer = useServer.Checked; m_ConfigBST.syncTimeWithServer = synchTime.Checked; byte[] addr = Encoding.ASCII.GetBytes(ipAddr.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.ipAddr, 0, addr.Length); addr = Encoding.ASCII.GetBytes(gateway.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.gateway, 0, addr.Length); addr = Encoding.ASCII.GetBytes(subnetMask.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.subnetMask, 0, addr.Length); addr = Encoding.ASCII.GetBytes(serverIP.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.serverIP, 0, addr.Length); if (useServer.Checked) { m_ConfigBST.serverPort = UInt32.Parse(port.Text); } else { m_ConfigBST.port = UInt32.Parse(port.Text); } int configSize = Marshal.SizeOf(m_ConfigBST); IntPtr config = Marshal.AllocHGlobal(configSize); Marshal.StructureToPtr(m_ConfigBST, config, true); Cursor.Current = Cursors.WaitCursor; int result = BSSDK.BS_WriteConfigUDP(m_Handle, m_DeviceAddr, m_DeviceID, BSSDK.BS_CONFIG_TCPIP, configSize, config); Marshal.FreeHGlobal(config); Cursor.Current = Cursors.Default; if (result != BSSDK.BS_SUCCESS) { MessageBox.Show("Cannot write the configuration", "Error"); } } else if (m_DeviceType == BSSDK.BS_DEVICE_XSTATION || m_DeviceType == BSSDK.BS_DEVICE_BIOSTATION2) { m_ConfigBST.useDHCP = DHCP.Checked; m_ConfigBST.useServer = useServer.Checked; m_ConfigBST.syncTimeWithServer = synchTime.Checked; byte[] addr = Encoding.ASCII.GetBytes(ipAddr.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.ipAddr, 0, addr.Length); addr = Encoding.ASCII.GetBytes(gateway.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.gateway, 0, addr.Length); addr = Encoding.ASCII.GetBytes(subnetMask.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.subnetMask, 0, addr.Length); addr = Encoding.ASCII.GetBytes(serverIP.Text); Buffer.BlockCopy(addr, 0, m_ConfigBST.serverIP, 0, addr.Length); if (useServer.Checked) { m_ConfigBST.serverPort = UInt32.Parse(port.Text); } else { m_ConfigBST.port = UInt32.Parse(port.Text); } int configSize = Marshal.SizeOf(m_ConfigBST); IntPtr config = Marshal.AllocHGlobal(configSize); Marshal.StructureToPtr(m_ConfigBST, config, true); Cursor.Current = Cursors.WaitCursor; int result = BSSDK.BS_WriteConfigUDP(m_Handle, m_DeviceAddr, m_DeviceID, BSSDK.BS_CONFIG_TCPIP, configSize, config); Marshal.FreeHGlobal(config); Cursor.Current = Cursors.Default; if (result != BSSDK.BS_SUCCESS) { MessageBox.Show("Cannot write the configuration", "Error"); } } }