/// <summary> /// Sends a write register packet for a RegisterTreeNode. /// </summary> /// <param name="registerTreeNode"> /// RegisterTreeNode to be written. /// </param> private void WriteRegisterTreeNode(RegisterTreeNode registerTreeNode) { if ((registerTreeNode.RegisterAddress == x_IMU_API.RegisterAddresses.FirmwareVersionMajorNum) || (registerTreeNode.RegisterAddress == x_IMU_API.RegisterAddresses.FirmwareVersionMinorNum) || (registerTreeNode.RegisterAddress == x_IMU_API.RegisterAddresses.DeviceID)) { return; // do not attmept to write read-only registers } try { Thread.Sleep(5); // delay to avoid overrunning the device receive buffer xIMUserial.SendWriteRegisterPacket(registerTreeNode.ConvertToRegisterData()); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }