/// <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) { }); }
/// <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; }
/// <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); }