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