Esempio n. 1
0
 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));
 }
Esempio n. 2
0
        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);
        }