public virtual void UpdateFromMessage(IDTRequest msg) { FaultWindowOpened = msg.FaultWindowOpen; FaultReadingFromMDS = msg.FaultReadingMDS; FaultWritingToMDS = msg.FaultWritingMDS; CommunicationErrorWithPRODIS = msg.CommunicationErrorWithPRODIS; }
/** * /// <summary> internal method to receive data</summary> * /// * /// <remarks> Lishi, 06/11/2013.</remarks> * /// * /// <exception cref="SocketException"> Thrown when a Socket error condition occurs. </exception> **/ private byte ManageReceive() { // try // { //(°°) inserita variabile che mi ritorna il valolre del servizio byte ServReq = 0; int read = _socket.Receive(_buffer, _buffer.Length, SocketFlags.None); if (read == 44) { //secondo le specifiche udp non dovrei poter ricevere mezzi pacchetti IDTRequest msg = new IDTRequest(); msg.SetBuffer(_buffer); //Gestione del TOGGLE BYTE // Il PC scrive un numero nell'11 byte, poi appena vediamo quel numero scritto // nel byte 3 del messaggio che riceviamo dall'MFT, allora incrementiamo di 1 // quel numero e al prossimo messaggio che invieremo, lo andremo a copiare sempre nel // byte 11. // Caso particolare: all'avvio il valore è zero, quindi noi // ce ne freghiamo e scriviamo 1. if (msg.ToggleByte == 0) { _currentToggle = 1; } else { // se vediamo che il valore che riceviamo è diverso da quello corrente, allora incremento di uno. if (_currentToggle == msg.ToggleByte) { _currentToggle++; } } // byte nextT = (byte) ((msg.ToggleByte+ 1)%Byte.MaxValue); // _currentToggle = msg.ToggleByte; // if (msg.ToggleByte == _currentToggle) // _currentToggle = nextT> _currentToggle ? nextT : _currentToggle; _lastReceivedCounter = msg.ContinuousMFTNumber; { _incomming.Add(msg); } //Console.WriteLine(msg.ContinuousMFTNumber); //Log.Info(String.Format("Received MSG ToggleByte = {0} ContinuousMFTNumber ={1}", msg.ToggleByte, msg.ContinuousMFTNumber)); Log.Info(String.Format("TOGGLE:{1:X2} MFT:{2:X2} UDP RX : {0}", msg.ToHexString(), msg.ToggleByte, msg.ContinuousMFTNumber)); _stDisconnection.Restart(); OnMessageReceived(new IDTMessageReceivedArgs(msg)); ServReq = msg.ServiceRequest; } return(ServReq); /* } * catch (SocketException ex) * { * if (ex.ErrorCode != (int) SocketError.WouldBlock) * throw; * }*/ }