Автоматизированное рабочее место оператора радиостанции

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?ное полученого фрейма

///

///

/// virtual bool Prepare(CFrame _Frame, byte[] _Command)

{true;

}

///

/// Подготовка команды

///

///

///

/// virtual bool Prepare(enumDevices toDevice, enumDevices fromDevice)

{

_toDevice = toDevice;

_fromDevice = fromDevice;Prepare();

}

///

/// Запуск комманды на выполнение

/// virtual bool Execute()

{.Info(string.Format("{0}: {1}:Base Execute.", this.m_Port.PortName, this.Name));true;

}

///

/// Подготовка команды

/// в зависемости от вбранного действия и состояния

/// Подготовка собирает команду и разбивает ее на фреймы.

/// virtual bool Prepare()

{true;

}

///

/// Посылка подготовленой команды

/// Посылка может осуществляться несколькими фреймами

///

/// virtual bool Send(CRS232Port _Port)

0&&_Port.IsOpen)">{(_Frames.Count > 0 && _Port.IsOpen)

{

_Frames[0].Index = _Port.IndexFrame;

_Port.UpdateIndex();

_Frames[0].State = enumState.Send;_Port = _Port;_Port.Send(_Frames[0]);true;

}false;

}

#endregionstatic void initialize()

{

_CommandList.Add(enumCommand.Empty, typeof (cmdEmpty));

_CommandList.Add(enumCommand.WriteROM, typeof (cmdWriteROM));

_CommandList.Add(enumCommand.ProgramMode, typeof (cmdProgramMode));

_CommandList.Add(enumCommand.EndCycle, typeof (cmdTicket));

_CommandList.Add(enumCommand.ClearROM, typeof (cmdClearROM));

_CommandList.Add(enumCommand.CheckROM, typeof (cmdCheckROM));

_CommandList.Add(enumCommand.Complete, typeof (cmdComplete));

_CommandList.Add(enumCommand.Ticket, typeof (cmdTicket));

_CommandList.Add(enumCommand.Data, typeof (cmdData));

_CommandList.Add(enumCommand.DataEnd, typeof(cmdDataEnd));

_CommandList.Add(enumCommand.Message, typeof (cmdMessage));

_CommandList.Add(enumCommand.Version, typeof (cmdVersion));

_CommandList.Add(enumCommand.Testing, typeof (cmdTesting));

_CommandList.Add(enumCommand.Unknown, typeof (cmdUnknown));

_CommandList.Add(enumCommand.FileStart, typeof(cmdFileStart));

_CommandList.Add(enumCommand.FileHeader, typeof(cmdFileHeader));

_CommandList.Add(enumCommand.SessionResult, typeof(cmdSessionResult));

_CommandList.Add(enumCommand.StartSession, typeof(cmdStartSession));

_CommandList.Add(enumCommand.WriteFile, typeof(cmdWriteFile));

_CommandList.Add(enumCommand.WriteFileSend, typeof(cmdWriteFileSend));

_CommandList.Add(enumCommand.FormatFlash, typeof(cmdFormatFlash));

_CommandList.Add(enumCommand.ReadFile, typeof(cmdReadFile));

_CommandList.Add(enumCommand.ReadFileRecieve, typeof(cmdReadFileRecieve));

_CommandList.Add(enumCommand.TimeInstall, typeof(cmdTime));

_CommandList.Add(enumCommand.StartMode, typeof(cmdStartMode));

_CommandList.Add(enumCommand.ModeControl, typeof(cmdModeControl));

_CommandList.Add(enumCommand.DirectoryRequest, typeof(cmdDirectoryRequest));

_CommandList.Add(enumCommand.Control, typeof(cmdControl));

_CommandList.Add(enumCommand.Crash, typeof(cmdCrash));

_CommandList.Add(enumCommand.DataReceived, typeof(cmdDataReceived));

_CommandList.Add(enumCommand.TurnOff, typeof(cmdTurnOff));

_CommandList.Add(enumCommand.DKMChar, typeof(cmdDKMChar));

_CommandList.Add(enumCommand.MSK128Power, typeof(cmdMSK128Power));

_CommandList.Add(enumCommand.ModeInfo, typeof(cmdModeInfo));

_CommandList.Add(enumCommand.ReTune, typeof(cmdReTune));

_CommandList.Add(enumCommand.C1TCHR, typeof(cmdC1TCHR));

_CommandList.Add(enumCommand.GetCoord, typeof(cmdCoord));

_CommandList.Add(enumCommand.RecVoice, typeof(cmdRecVoice));

_CommandList.Add(enumCommand.RecLengthReq, typeof(cmdRecLengthReq));

_CommandList.Add(enumCommand.RecLength, typeof(cmdRecLength));

_CommandList.Add(enumCommand.CallRecieve, typeof(cmdCallRecieve));

_CommandList.Add(enumCommand.CallSend, typeof(cmdCallSend));

_CommandList.Add(enumCommand.TangetKey, typeof(cmdTangetKey));

_CommandList.Add(enumCommand.WriteProtocol, typeof(cmdWriteProtocol));

_CommandList.Add(enumCommand.PlayVoice, typeof(cmdPlayVoice));

_CommandList.Add(enumCommand.Telemet, typeof(cmdTelemet));

_CommandList.Add(enumCommand.Bluetooth, typeof(cmdBluetooth));

}

///

/// Создает команду по ее номеру

///

///

/// static CCommand GetCommand(enumCommand _indexCommand)

{(_CommandList.ContainsKey(_indexCommand))

{t = _CommandList[_indexCommand];(CCommand) Activator.CreateInstance(t);

}(onErrorReceived != null)(null, string.Format("Команда с индексом {0} не найдена!", _indexCommand.ToString())); //ъотели заменить на следующую строку

//OnErrorReceivedCCommand(string.Format("Команда с индексом {0} не найдена!", _indexCommand.ToString()));new CException("Команда не найдена!");

}

///

/// получаем данные с определенного байта и определенное количество

///

///

///

///

/// static byte[] GetData(byte[] body, int from, int count)

{(body.Length < from + count)

{new byte[0];

}[] _body = new byte[count];(byte i = 0; i < count; i++)

_body[i] = body[i+from];_body;

}

///

/// Посылка подготовленой команды

/// Посылка может осуществляться несколькими фреймами

///

/// virtual bool Send(CRS232Port _Port, byte? index)

0&&_Port.IsOpen)">{(_Frames.Count > 0 && _Port.IsOpen)

{(index != null)

{

_Frames[0].Index = index;

}

{

_Frames[0].Index = _Port.IndexFrame;

_Port.UpdateIndex();

}

_Frames[0].State = enumState.Send;_Port = _Port;_Port.Send(_Frames[0]);true;

}false;

}static bool sendTicket(CCommand _command)

{.Info(_command.m_Port.PortName + ": Посылка тикета для команды " + _command.Name);sendTicket(_command.m_Port, _command._Frames[0].FromDevice, _command._Frames[0].ToDevice, _command._Frames[0].Index, _command);

}static bool sendTicket(CRS232Port _port, enumDevices _to, enumDevices _from, byte? _Index, CCommand _command)

{

{_packetInQueue = _port.GetCurrentFrameToSend();(_packetInQueue == null)

{.Info(_port.PortName + ": Не найден кадр на который отправляем подтверждение.");

//return false;

}ticket = CCommand.GetCommand(enumCommand.Ticket);.TimeOutToSend = 0; //не ждать ответа вообще..MaxTryToSend = 0;.CompleteRequired = false;.CompleteRequiredTime = 0;.Action = enumAction.Send;.Send(_port, _to, _from, _Index, ticket);

}(Exception _ex)

{.Error(_ex);

}true;

}static bool sendComplete(CCommand _command)

{.Info(_command.m_Port.PortName + ": Посылка готово для команды " + _command.Name);sendComplete(_command.m_Port, _command.fromDevice, _command.toDevice, null);

}static bool sendComplete(CRS232Port _port, enumDevices _to, enumDevices _from, byte? _Index)

{cmdComplete = (cmdComplete)CCommand.GetCommand(enumCommand.Complete);.Action = enumAction.Send;.State = enumState.Initialize;.TimeOutToSend = 300;.MaxTryToSend = 3;.CompleteRequired = false;.CompleteRequiredTime = 0;.Data = new byte[3];.Data[0] = 0;.Data[1] = 0;.Data[2] = 0;

_Index++;.Send(_port, _to, _from, _Index, cmdComplete);

//ChangeStatus("Посылаем команду Готово, в ответ на команду Данные.");_wait = true;

{(_wait)

{(cmdComplete.State)

{enumState.TicketReceived:

//ChangeStatus.CurrentStatus = "Получена квитанция на команду Готово.";

<