public NegativeOutputUI(NegativeOutput negativeOutput, ECU parent, CommandHandler cmdHandler, Serial serial) { InitializeComponent(); this.negativeOutput = negativeOutput; this.parent = parent; this.cmdHandler = cmdHandler; this.serial = serial; this.DataContext = negativeOutput; IndexItems = new List <string>(); activatorCmb.ItemsSource = Enum.GetValues(typeof(OUTPUT_ACTIVATOR)); conditionSourceCmb.ItemsSource = Enum.GetValues(typeof(CONDITION_SOURCE)); voltageSourceCmb.ItemsSource = parent.analogList.Select(o => o.Header.ToString()).ToList(); voltageSourceCmb.SelectedIndex = negativeOutput.VoltageSource; loadShadingCmb.ItemsSource = Enum.GetValues(typeof(LOAD_SHADING)); }
public void cmdWriteNegativeOutputConfigs(uint seleectedShortAddess, NegativeOutput negative) { CANPacket packet = new CANPacket(); packet.Packet_type = CANPacket.Pkt_Type_t.Pkt_Type_Command; packet.Packet_id = (UInt32)CANPacket.Pkt_ID_t.Cmd_Write_Neg_Output_Configs; packet.Source_address = 0; packet.Destination_address = seleectedShortAddess; packet.Length = 0; packet.Buffer[packet.Length++] = (byte)negative.Index; packet.Buffer[packet.Length++] = (byte)negative.Activator; packet.Buffer[packet.Length++] = (byte)((negative.ActiveTime >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(negative.ActiveTime & 0xFF); packet.Buffer[packet.Length++] = (byte)((negative.StartupDelay >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(negative.StartupDelay & 0xFF); // Activate conditions packet.Buffer[packet.Length++] = (byte)negative.ConditionSource; packet.Buffer[packet.Length++] = (byte)negative.SourceIndex; packet.Buffer[packet.Length++] = (byte)((negative.TurnOnWhen >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(negative.TurnOnWhen & 0xFF); packet.Buffer[packet.Length++] = (byte)((negative.TurnOffWhen >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(negative.TurnOffWhen & 0xFF); // TODO:Fix this packet.Buffer[packet.Length++] = (byte)negative.LEDOutputErrFreq; packet.Buffer[packet.Length++] = (byte)negative.LEDOutputErrBlink; packet.Buffer[packet.Length++] = (byte)negative.LEDOutputErrBright; // Voltage monitoring packet.Buffer[packet.Length++] = Convert.ToByte(negative.VoltageMonitor); packet.Buffer[packet.Length++] = (byte)negative.VoltageSource; UInt16 minVoltage = (UInt16)(negative.MinVoltage * 1000.0); packet.Buffer[packet.Length++] = (byte)((minVoltage >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(minVoltage & 0xFF); UInt16 maxVoltage = (UInt16)(negative.MaxVoltage * 1000.0); packet.Buffer[packet.Length++] = (byte)((maxVoltage >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(maxVoltage & 0xFF); packet.Buffer[packet.Length++] = (byte)negative.LEDUnderVoltageFreq; packet.Buffer[packet.Length++] = (byte)negative.LEDUnderVoltageBlink; packet.Buffer[packet.Length++] = (byte)negative.LEDUnderVoltageBright; packet.Buffer[packet.Length++] = (byte)negative.LEDOverVoltageFreq; packet.Buffer[packet.Length++] = (byte)negative.LEDOverVoltageBlink; packet.Buffer[packet.Length++] = (byte)negative.LEDOverVoltageBright; // Current monitoring packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; packet.Buffer[packet.Length++] = 0; // Load shading packet.Buffer[packet.Length++] = (byte)negative.LoadShading; TL_Packet tl_packet = new TL_Packet(); canInterface.EncodePacket(ref packet, ref tl_packet); //transportLayer.SendPacket(ref tl_packet); serial.sendMessage(transportLayer.SendPacket(ref tl_packet)); logger.Info("Write negative output configs", tl_packet); }