public PositiveOutputUI(PositiveOutput positiveOutput, ECU parent, CommandHandler cmdHandler, Serial serial) { InitializeComponent(); this.positiveOutput = positiveOutput; this.parent = parent; this.cmdHandler = cmdHandler; this.serial = serial; serial.PositiveOutputtevent += event_recived; this.DataContext = positiveOutput; 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 = positiveOutput.VoltageSource; loadShadingCmb.ItemsSource = Enum.GetValues(typeof(LOAD_SHADING)); }
public void cmdWritePosOutputConfigs(uint seleectedShortAddess, PositiveOutput positive) { CANPacket packet = new CANPacket(); packet.Packet_type = CANPacket.Pkt_Type_t.Pkt_Type_Command; packet.Packet_id = (UInt32)CANPacket.Pkt_ID_t.Cmd_Write_Pos_Output_Configs; packet.Source_address = 0; packet.Destination_address = seleectedShortAddess; packet.Length = 0; packet.Buffer[packet.Length++] = (byte)positive.Index; packet.Buffer[packet.Length++] = (byte)positive.Activator; packet.Buffer[packet.Length++] = (byte)((positive.ActiveTime >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(positive.ActiveTime & 0xFF); packet.Buffer[packet.Length++] = (byte)((positive.StartupDelay >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(positive.StartupDelay & 0xFF); // Activate conditions packet.Buffer[packet.Length++] = (byte)positive.ConditionSource; packet.Buffer[packet.Length++] = (byte)positive.SourceIndex; packet.Buffer[packet.Length++] = (byte)((positive.TurnOnWhen >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(positive.TurnOnWhen & 0xFF); packet.Buffer[packet.Length++] = (byte)((positive.TurnOffWhen >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(positive.TurnOffWhen & 0xFF); // TODO:Fix this packet.Buffer[packet.Length++] = (byte)positive.LEDOutputErrFreq; packet.Buffer[packet.Length++] = (byte)positive.LEDOutputErrBlink; packet.Buffer[packet.Length++] = (byte)positive.LEDOutputErrBright; // Voltage monitoring packet.Buffer[packet.Length++] = Convert.ToByte(positive.VoltageMonitor); packet.Buffer[packet.Length++] = (byte)positive.VoltageSource; UInt16 minVoltage = (UInt16)(positive.MinVoltage * 1000.0); packet.Buffer[packet.Length++] = (byte)((minVoltage >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(minVoltage & 0xFF); UInt16 maxVoltage = (UInt16)(positive.MaxVoltage * 1000.0); packet.Buffer[packet.Length++] = (byte)((maxVoltage >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(maxVoltage & 0xFF); packet.Buffer[packet.Length++] = (byte)positive.LEDUnderVoltageFreq; packet.Buffer[packet.Length++] = (byte)positive.LEDUnderVoltageBlink; packet.Buffer[packet.Length++] = (byte)positive.LEDUnderVoltageBright; packet.Buffer[packet.Length++] = (byte)positive.LEDOverVoltageFreq; packet.Buffer[packet.Length++] = (byte)positive.LEDOverVoltageBlink; packet.Buffer[packet.Length++] = (byte)positive.LEDOverVoltageBright; // Current monitoring packet.Buffer[packet.Length++] = Convert.ToByte(positive.CurrentMonitor); packet.Buffer[packet.Length++] = (byte)((positive.MinimumCurrent >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(positive.MinimumCurrent & 0xFF); packet.Buffer[packet.Length++] = (byte)((positive.MaxCurrent >> 8) & 0xFF); packet.Buffer[packet.Length++] = (byte)(positive.MaxCurrent & 0xFF); packet.Buffer[packet.Length++] = (byte)positive.LEDUnderCurrFreq; packet.Buffer[packet.Length++] = (byte)positive.LEDUnderCurrBlink; packet.Buffer[packet.Length++] = (byte)positive.LEDUnderCurrBright; packet.Buffer[packet.Length++] = (byte)positive.LEDOverCurrFreq; packet.Buffer[packet.Length++] = (byte)positive.LEDOverCurrBlink; packet.Buffer[packet.Length++] = (byte)positive.LEDOverCurrBright; // Load shading packet.Buffer[packet.Length++] = (byte)positive.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 positive output configs", tl_packet); }