Автоматизированное рабочее место оператора радиостанции
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?ное полученого фрейма
///
///
/// 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 = "Получена квитанция на команду Готово.";
<