Exemplo n.º 1
0
        /// <summary>
        /// Конструктор по-умолчанию
        /// </summary>
        public XSAN()
        {
            Connected = false;
            ControlValuesList.Add(new ControlValue()); // XSAN_CTRL_IDX
            ControlValuesList.Add(new ControlValue()); // BUNI_CTRL_IDX
            ControlValuesList.Add(new ControlValue()); // POWER_CTRL_IDX

            _decoder = new ProtocolUSB5E4D(null, LogsClass.Instance.Files[LogsClass.UsbIdx], false, true);
            _decoder.GotProtocolMsg += new ProtocolUSBBase.ProtocolMsgEventHandler(onMessageFunc);
            _decoder.GotProtocolError += new ProtocolUSBBase.ProtocolErrorEventHandler(onErrorFunc);

            ETime = new EgseTime();

            Device = new XsanDevice(XsanConst.XSANSerial, _decoder);
            Device.ChangeStateEvent = onChangeConnection;

            //
            _xsanDataLogStream = null;
            _xsanChannelForWriting = 0;
            _writeXsanDataToFile = false;

            HSIInt = new HSIInterface();
            Tm = new XsanTm();
            //
            ControlValuesList[XsanConst.XSAN_CTRL_IDX].AddProperty(XsanConst.PROPERTY_XSAN_READY_IDX, 4, 1, Device.CmdHSIXSANControl, delegate(UInt32 value)
            {
                XsanImitatorReady = (value == 1);
            });
            ControlValuesList[XsanConst.XSAN_CTRL_IDX].AddProperty(XsanConst.PROPERTY_XSAN_BUSY_IDX, 5, 1, Device.CmdHSIXSANControl, delegate(UInt32 value)
            {
                XsanImitatorBusyOn = (value == 1);
            });
            ControlValuesList[XsanConst.XSAN_CTRL_IDX].AddProperty(XsanConst.PROPERTY_XSAN_ME_IDX, 6, 1, Device.CmdHSIXSANControl, delegate(UInt32 value)
            {
                XsanImitatorMeOn = (value == 1);
            });
            ControlValuesList[XsanConst.XSAN_CTRL_IDX].AddProperty(XsanConst.PROPERTY_XSAN_CMD_CH_IDX, 0, 2, Device.CmdHSIXSANControl, delegate(UInt32 value)
            {
                XsanImitatorCmdChannel = (int)value;

            });
            ControlValuesList[XsanConst.XSAN_CTRL_IDX].AddProperty(XsanConst.PROPERTY_XSAN_DAT_CH_IDX, 2, 2, Device.CmdHSIXSANControl, delegate(UInt32 value)
            {
                XsanImitatorDatChannel = (int)value;

            });
            //
            ControlValuesList[XsanConst.BUNI_CTRL_IDX].AddProperty(XsanConst.PROPERTY_BUNI_ON_IDX, 0, 1, Device.CmdHSIBUNIControl, delegate(UInt32 value)
            {
                BuniImitatorOn = (value == 1);
            });
            ControlValuesList[XsanConst.BUNI_CTRL_IDX].AddProperty(XsanConst.PROPERTY_BUNI_CMD_CH_IDX, 1, 1, Device.CmdHSIBUNIControl, delegate(UInt32 value)
            {
                BuniImitatorCmdChannel = (int)value;
            });
            ControlValuesList[XsanConst.BUNI_CTRL_IDX].AddProperty(XsanConst.PROPERTY_BUNI_DAT_CH_IDX, 2, 2, Device.CmdHSIBUNIControl, delegate(UInt32 value)
            {
                BuniImitatorDatChannel = (int)value;
            });
            ControlValuesList[XsanConst.BUNI_CTRL_IDX].AddProperty(XsanConst.PROPERTY_BUNI_HZ_IDX, 4, 1, Device.CmdHSIBUNIControl, delegate(UInt32 value)
            {
                BuniImitatorTimeStampOn = (value == 1);
            });
            ControlValuesList[XsanConst.BUNI_CTRL_IDX].AddProperty(XsanConst.PROPERTY_BUNI_KBV_IDX, 5, 1, Device.CmdHSIBUNIControl, delegate(UInt32 value)
            {
                BuniImitatorObtOn = (value == 1);
            });
            //
            ControlValuesList[XsanConst.POWER_CTRL_IDX].AddProperty(XsanConst.PROPERTY_POWER_IDX, 0, 1, Device.CmdPowerOnOff, delegate(UInt32 value) { });
        }
Exemplo n.º 2
0
        /// <summary>
        /// Обработчк пришедшего УКС
        /// </summary>
        /// <param name="buf">Данные УКС</param>
        /// <param name="timeBuf">Время получения</param>
        public void newUKSFrame(byte[] buf, byte[] timeBuf)
        {
            EgseTime time = new EgseTime();
            time.Data = timeBuf;

            string uksString = time.ToString() + ": " + Converter.ByteArrayToHexStr(buf);
            UKSListBox.Dispatcher.Invoke(new Action(delegate { UKSListBox.Items.Add(uksString); UKSListBox.ScrollIntoView(uksString); }));
            //
            LogsClass.Instance.Files[LogsClass.HsiIdx].LogText = "УКС: " + uksString;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Стандарная команда установки времени
        /// </summary>
        public void CmdSendTime()
        {
            EgseTime time = new EgseTime();
            time.Encode();

            byte[] OBTData = new byte[5];
            OBTData[0] = 0;
            OBTData[1] = 0;
            OBTData[2] = 0;
            OBTData[3] = 0;
            OBTData[4] = 10;

            buf = new byte[1] { 1 };

            base.SendCmd(TIME_RESET_ADDR, buf);
            base.SendCmd(TIME_DATA_ADDR, time.Data);
            base.SendCmd(TIME_OBT_ADDR, OBTData);
            base.SendCmd(TIME_SET_ADDR, buf);
        }