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

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

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

?т программы CComand.csSystem;System.Collections.Generic;System.Text;System.Threading;NamotkaLibrary.Classes;NamotkaLibrary.Protocol.Commands;NamotkaLibrary.Protocol

{delegate void CCommandErrorEventHandler(Object sender, string error);delegate void DoneAndOutEventHandler(Object sender, EventArgs e);class CCommand : ICommand

{static event CCommandErrorEventHandler onErrorReceived;virtual string Name

{

{"Нет имени";

}

}virtual void OnErrorReceivedCCommand(string error)

{(onErrorReceived != null)(this, error);

}

//Вычтвыляется если необходимо подтверждение командыbool CompleteRequired { get; set; }

 

//Время ожидания подтверждения командыuint CompleteRequiredTime { get; set; }_lockFrame = new object();

#region onTicketReceived() Реакция на пришежший тикет для фрейма командыvirtual void onTicketReceived()

{(Global_locks.waitcomplete)

{

//TODO: Именно тут перебивался когда-то статус DoneReceived на TicketReceived.Info(string.Format(m_Port.PortName + ": {0} 4 Выставляем статус TicketReceived", this.Name));(State != enumState.DoneReceived)= enumState.TicketReceived;

{.Info(string.Format(

"{1}: {2} : Кадр {0}: Подтвержден квитанцией",

_Frames[0].Index, m_Port.PortName, _Frames[0].Command.Name));(CompleteRequired)

{

_Frames[0].TimeOutStep = CompleteRequiredTime;

}

{.Info(string.Format("{1}: {2} : Кадр {0}: Удаляем из очереди",_Frames[0].Index, m_Port.PortName, _Frames[0].Command.Name));(_lockFrame)

{

_Frames.RemoveAt(0);_Port.RemoveTargetFrameToSend(0);

0)">}(_Frames.Count > 0)

{(m_Port);

}

};

}(Exception _ex)

{.Error(_ex);

}

}

}

#endregion

#region onCompleteReceived()Реакция на пришедший "Готово" для фрейма командыvirtual void onCompleteReceived()

{(Global_locks.waitcomplete)

{.Info(string.Format(m_Port.PortName + ": {0} 3 Выставляем статус DoneReceived", this.Name));= enumState.DoneReceived;

0)">{(_Frames.Count > 0)

{.Info(string.Format("{1}: {2} :Кадр {0}: Подтвержден командой готово",

_Frames[0].Index, m_Port.PortName, _Frames[0].Command.Name));(_lockFrame)

{.Info(string.Format(m_Port.PortName + ": {0} 4 Выставляем статус DoneReceived", this.Name));

_Frames[0].State = enumState.DoneReceived;.Info(string.Format(m_Port.PortName + ": Удаляем пакет {0}", _Frames[0].ToString()));

_Frames.RemoveAt(0);_Port.RemoveTargetFrameToSend(0);

0)">}(_Frames.Count > 0)

{(m_Port);

}

};

}(Exception _ex)

{.Error(_ex);

}

}

}

#endregion Реакция на пришедший "Готово" для фрейма команды

#region onError()Реакиця на ошибку внутри фрейма командыvirtual void onError()

{.Info(string.Format("{0}: Ошибка - команда не выполнена.", m_Port.PortName));LastState = State;= enumState.Error;

{(_lockFrame)

{.Info(m_Port.PortName + ": Реакиця на ошибку внутри фрейма команды. Очистили лист CFrame 1");

_Frames.Clear();

0)">}(_Frames.Count > 0)

{(string.Format("{0}: Ошибка команды: {1}, статус: {2}", m_Port.PortName, _Frames[0].Command.Name, LastState.ToString(), Code[0].ToString()));new Exception(string.Format("{0}: Ошибка команды: {1}, статус: {2}", m_Port.PortName, _Frames[0].Command.Name, LastState.ToString(), Code[0].ToString()));

}

{(string.Format("{0}: Ошибка команды: {1}, статус: {2}", m_Port.PortName, Name, LastState.ToString(),Code[0].ToString()));new Exception(string.Format("{0}: Ошибка команды: {1}, статус: {2}", m_Port.PortName, Name, LastState.ToString(), Code[0].ToString()));

}

}(Exception _ex)

{.Error(_ex);

}

}

#endregion

#region onSended()Реакция после отправкиvirtual void onSended()

0).Info(.Format("{1}:{0}:.",">{(_Frames.Count > 0).Info(.Format("{1}: Кадр {0}: Кадр отправлен.",

_Frames[0].Index, m_Port.PortName));

}

#endregion

#region onDoneWaiting()virtual void onDoneWaiting()

0).Info(.Format("{1}:{0}:.",">{(_Frames.Count > 0).Info(.Format("{1}: Кадр {0}: Кадр ожидает команду готово.",

_Frames[0].Index, m_Port.PortName));

}

#endregion

#region onSend()Реакция до отправкиvirtual void onSend()

0).Info(.Format("{1}:{0}:.",">{(_Frames.Count > 0).Info(.Format("{1}: Кадр {0}: Кадр готов к отправке.",

_Frames[0].Index, m_Port.PortName));

}

#endregion

//Посылка тикета в ответ на принятую команду.virtual void onCommandReceived()

{(this);.Info(string.Format("Отправили квитанцию на команду: {0}", this.Name));

}

//Посылка готово в ответ на обработанную команду.virtual void onCommandCompleted()

{

//lock (_lockFrame)

//{

// m_Port.RemoveTargetReceivedFrame(0);

//}(this);.Info(string.Format("Отправлена Готово на команду: {0}", this.Name));

}

///

/// Статический список команд и их обработчиков

/// _CommandList

= new Dictionary();

///

/// Действие, которое выполняет комманда

enumAction _Action = enumAction.Unknown;">/// enumAction _Action = enumAction.Unknown;

///

/// Представление тела коммадны

/// byte[] _Body;

///

/// Код команды (смотри документацию)

/// byte[] _Code;

///

/// Блок данных команды

/// _Frames;enumDevices _fromDevice;byte _MaxTryToSend;

///

/// Состояние команды в текущйи момент

enumState _State = enumState.Initialize;UInt32 _TimeOutToSend;enumDevices _toDevice;CCommand()">/// enumState _State = enumState.Initialize;UInt32 _TimeOutToSend;enumDevices _toDevice;CCommand()

{= false;= 0;

}

///

/// Конструктор для экземпляра команды

///

/// CCommand(enumCommand indexCommand)

{= false;= 0;(indexCommand != enumCommand.Ticket)

{

_Code = new byte[1];[0] = (byte) indexCommand;= null;

}

}bool AnyTargetDevice { get; set; }UInt32 TimeOutToSend

{{ _TimeOutToSend = value; }{ return _TimeOutToSend; }

}byte MaxTryToSend

{{ return _MaxTryToSend; }{ _MaxTryToSend = value; }

}enumDevices toDevice

{{ return _toDevice; }{ _toDevice = value; }

}enumDevices fromDevice

{{ return _fromDevice; }{ _fromDevice = value; }

}byte[] Data

{{ return _Data; }

{

_Data = value;

_Body = null;

}

}byte[] Body

{

{(_Body == null)

0)">{_length = (_Code != null ? _Code.Length : 0) + (_Data != null ? _Data.Length : 0);(_length > 0)

{

_Body = new byte[_length];

_Body[0] = _Code[0];(_Data != null)(byte i = 0; i < (byte) _Data.Length; i++)

_Body[i + 1] = _Data[i];

}

}_Body;

}

}object[] Params { get; set; }

#region ICommand MembersCFrame Ticket { get; set; }List Frames

{{ return _Frames; }{ _Frames = value; }

}CRS232Port m_Port { get; set; }enumState State

{{ return _State; }{ _State = value; }

}enumAction Action

{{ return _Action; }{ _Action = value; }

}byte[] Code

{{ return _Code; }

{(_Code == null)

_Code = new byte[1];

_Code = value;

}

}

///

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