/// <summary> /// Constructs a read register packet. /// </summary> /// <param name="registerData"> /// <see cref="RegisterData"/> instance containing register address to be read. /// </param> /// <returns> /// Constructed and encoded read register packet /// </returns> public static byte[] ConstructReadRegisterPacket(RegisterData registerData) { byte[] decodedPacket = new byte[] { (byte)PacketHeaders.ReadRegister, (byte)((ushort)registerData.Address >> 8), (byte)registerData.Address, 0}; decodedPacket = InsertChecksum(decodedPacket); return PacketEncoding.EncodePacket(decodedPacket); }
protected virtual void OnRegisterDataReceived(RegisterData e) { if (RegisterDataReceived != null) RegisterDataReceived(this, e); }
/// <summary> /// Sends write register packet. /// </summary> /// <param name="registerData"> /// Register data containing register address and value. /// </param> public void SendWriteRegisterPacket(RegisterData registerData) { SendByteArray(PacketConstruction.ConstructWriteRegisterPacket(registerData)); PacketsWrittenCounter.WriteRegisterPackets++; }
/// <summary> /// Write <see cref="RegisterData"/> to CSV file. Will create new file if required. /// </summary> /// <param name="registerData"> /// x-IMU register data. /// </param> public void WriteRegisterData(RegisterData registerData) { string fixedPointValue = "NaN"; try { fixedPointValue = registerData.ConvertValueToFloat().ToString(CultureInfo.InvariantCulture); } catch { } WriteCSVlineAtFileIndex(((ushort)registerData.Address).ToString(CultureInfo.InvariantCulture) + "," + registerData.Value.ToString(CultureInfo.InvariantCulture) + "," + fixedPointValue + "," + Enum.GetName(typeof(RegisterAddresses), registerData.Address), FileIndexes.Registers); PacketsWrittenCounter.WriteRegisterPackets++; }
/// <summary> /// Writes write register packet. /// </summary> /// <param name="registerData"> /// Register data containing register address and value. /// </param> public void WriteWriteRegisterPacket(RegisterData registerData) { WriteByteArray(PacketConstruction.ConstructWriteRegisterPacket(registerData)); PacketsWrittenCounter.WriteRegisterPackets++; }
/// <summary> /// Sends read register packet. /// </summary> /// <param name="registerData"> /// Register data containing register address. /// </param> public void SendReadRegisterPacket(RegisterData registerData) { SendByteArray(PacketConstruction.ConstructReadRegisterPacket(registerData)); PacketsWrittenCounter.ReadRegisterPackets++; }
/// <summary> /// Register data received event to read x-IMU device ID. /// </summary> private void xIMUserialobj_RegisterDataReceived(object sender, RegisterData e) { if (e.Address == RegisterAddresses.DeviceID) { receivedDeviceID = string.Format("{0:X4}", e.Value); } }