Ejemplo n.º 1
0
        private void ReceiveOutsidePacket(byte[] receivedPacket)
        {
            SignalMessage receivedMessage = ByteToSignalMessage(receivedPacket);
            Delegate_ReceiveOutsideMessage receiveMessage = null;

            switch (receivedMessage.General_DestinationModule)
            {
            case "CC":
                receiveMessage = new Delegate_ReceiveOutsideMessage(_moduleCC.ReceiveMessageFromPC);
                break;

            case "RC":
                receiveMessage = new Delegate_ReceiveOutsideMessage(_moduleRC.ReceiveMessageFromPC);
                break;

            case "LRM":
                receiveMessage = new Delegate_ReceiveOutsideMessage(_moduleLRM.ReceiveMessageFromPC);
                break;

            default:
                SignallingNodeDeviceClass.MakeSignallingLog("PC", "ERROR - Destination module unknown.");
                break;
            }
            if (receiveMessage != null)
            {
                receiveMessage.BeginInvoke(receivedMessage, new AsyncCallback(ReceiveOutsideMessageCallback), null);
            }
        }
Ejemplo n.º 2
0
        private void ReceiveOutsideMessageCallback(IAsyncResult async)
        {
            //tutaj nie chcemy nic robić, po prostu zasoby mają się zwolnić
            //metoda wywoływana po wyjściu z metody ReceiveMessageFromPC
            AsyncResult ar = (AsyncResult)async;
            Delegate_ReceiveOutsideMessage del = (Delegate_ReceiveOutsideMessage)ar.AsyncDelegate;

            del.EndInvoke(async);
        }