コード例 #1
0
ファイル: RdrClient.cs プロジェクト: anbarrasu/RdrClient
        public bool Send(RdrMsgFormat p)
        {
            try
            {
                byte[] byteData = p.GetPacketBytes();

                UdpCli.Send(byteData, byteData.Length);
                return true;
            }
            catch (Exception ex)
            {
                applog.logexcep("RdrDoorClient: Send()",ex.Message);
                return false;
            }
        }
コード例 #2
0
ファイル: UdpSocketListener.cs プロジェクト: anbarrasu/Server
        void thd_receiveUdpPkts()
        {
            byte[] message = new byte[1024];
            int bytesRead;
            RdrMsgFormat rcvmsg = new RdrMsgFormat();
            //MessageBox.Show("In Receive thread");
            try
            {
                // Creates an IPEndPoint to capture the identity of the client when we'll use the Socket.ReceiveFrom Method
                IPEndPoint remote_endpoint = new IPEndPoint(IPAddress.Any, 0);   // IP and PORT pairing of the client

                EndPoint ep = (EndPoint)remote_endpoint;
                while (receive)
                {
                    bytesRead=listening_socket.ReceiveFrom(message, ref ep);
                    //Check for the ip address
                    if (bytesRead>0)
                    {
                        //MessageBox.Show(string.Format("No of bytes read: {0}",bytesRead));
                        rcvmsg = rcvmsg.GetPacketObject(message);

                        //Deserilise the received message
                        if (tomain_msgQueue != null)
                        {
                            //MessageBox.Show("Putting data in Queue");
                            tomain_msgQueue.Enqueue(rcvmsg);
                            QueueEvnt.Set();
                        }

                    }

                    //Send to a queue that would be read by
                }
                MessageBox.Show("Exiting Udp Receive thread");
                QueueEvnt.Set();
            }
            catch (Exception ex)
            {
                applog.logexcep("thd_receiveUdpPkts", ex.Message);
            }
        }
コード例 #3
0
        private static void SendMsgtoServer(RdrMsgFormat data)
        {
            byte[] byteData = data.GetPacketBytes();

            // Begin sending the data to the remote device.
            client.BeginSend(byteData, 0, byteData.Length, 0,
                new AsyncCallback(SendCallback), client);
        }
コード例 #4
0
        public static bool pingserver()
        {
            RdrMsgFormat sndmsg = new RdrMsgFormat();
            try
            {
                sndmsg.msgid = message_id.ping;
                sndmsg.key = message_key.pingkey;
                SendMsgtoServer(sndmsg);
                // Send test data to the remote device.
                //Send("Hai how are you <EOF>");
                sendDone.WaitOne();
                //MessageBox.Show("Message Sent");
                // Receive the response from the remote device.
                Receive();
                receiveDone.WaitOne();

                // Write the response to the console.
                applog.loggen(string.Format("Response received : {0}", response));

                return true;
            }
            catch (Exception e)
            {
                applog.logexcep("pingserver", e.ToString());
                return false;
            }
        }
コード例 #5
0
        private static void RcvMsgHandler(IAsyncResult ar)
        {
            try
            {
                String content = String.Empty;
                RdrMsgFormat rcvmsg = new RdrMsgFormat();
                // Retrieve the state object and the handler socket
                // from the asynchronous state object.
                StateObject state = (StateObject)ar.AsyncState;
                Socket handler = state.workSocket;

                // Read data from the client socket.
                int bytesRead = handler.EndReceive(ar);

                if (bytesRead > 0)
                {
                    rcvmsg = rcvmsg.GetPacketObject(state.buffer);

                    switch (rcvmsg.msgid)
                    {
                        case message_id.ping_rply:

                            if (rcvmsg.key == 0x11223344)
                                MessageBox.Show("Received ping sucessfully");
                            // Signal that all bytes have been received.
                            receiveDone.Set();
                            break;
                        case message_id.testmsg:

                            break;
                        default:

                            break;
                    }
                    handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
                        new AsyncCallback(RcvMsgHandler), state);
                }
            }
            catch (Exception e)
            {
                applog.logexcep("RcvMsgHandler", e.ToString());
            }
        }
コード例 #6
0
ファイル: serialPortM.cs プロジェクト: anbarrasu/RdrClient
        public void vSerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            int value = 0;
            RdrMsgFormat rdrmsg = new RdrMsgFormat();
            DateTime now = new DateTime();
            try
            {
                RxData = vSerialPort.ReadLine();
                applog.logserial(RxData);


                if (getid(RxData, ref value))
                {
                    int rdr;
                    rdr = (value >> 15) & 0x1;
                    now = DateTime.Now;

                    rdrmsg.cardid = (ushort)(value & 0x7fff);
                    rdrmsg.doorno = (ushort)doorno;
                    rdrmsg.key = 15432;
                    rdrmsg.msgid = message_id.id;
                    rdrmsg.swipedate = now;


                    if (rdr == 1)
                    {
                        rdrmsg.inout = false;

                        applog.logtemp("Swipe Out :" + (value & 0x7fff).ToString(), now);
                    }
                    else
                    {
                        rdrmsg.inout = true;
                        applog.logtemp("Swipe In  :" + value.ToString(), now);
                    }
                    rdrCli.Send(rdrmsg);
                }


            }
            catch (Exception ex)
            {

                applog.logexcep("vSerialPort_DataReceived", ex.Message);
                return;
            }
            return;
            //MessageBox.Show(value.ToString());

        }
コード例 #7
0
ファイル: serialPortM.cs プロジェクト: anbarrasu/RdrClient
        public void testsend(int inout)
        {
            RdrMsgFormat rdrmsg = new RdrMsgFormat();
            uint value = 1121;
            rdrmsg.cardid = (ushort)(value & 0x7fff);
            rdrmsg.doorno = (ushort)doorno;

            rdrmsg.key = 15432;
            rdrmsg.msgid = message_id.id;
            rdrmsg.swipedate = DateTime.Now;
            if (inout==1)
            {
                rdrmsg.inout = false;

                // applog.logtemp("Swipe Out :" + (value & 0x7fff).ToString(),now);
            }
            else
            {
                rdrmsg.inout = true;
                // applog.logtemp("Swipe In  :" + value.ToString(),now);
            }
            rdrCli.Send(rdrmsg);
        }
コード例 #8
0
        private static void SendMsgtoClient(Socket handler, RdrMsgFormat data)
        {
            byte[] byteData = data.GetPacketBytes();

            // Begin sending the data to the remote device.
            handler.BeginSend(byteData, 0, byteData.Length, 0,
                new AsyncCallback(SendCallback), handler);
        }
コード例 #9
0
        private static void RcvMsgHandler(IAsyncResult ar)
        {
            try{

            String content = String.Empty;
            RdrMsgFormat rcvmsg = new RdrMsgFormat();
            // Retrieve the state object and the handler socket
            // from the asynchronous state object.
            StateObject state = (StateObject)ar.AsyncState;
            Socket handler = state.workSocket;

            // Read data from the client socket.
            int bytesRead = handler.EndReceive(ar);

            if (bytesRead > 0)
            {
                //MessageBox.Show(string.Format("No of bytes read: {0}",bytesRead));
                rcvmsg = rcvmsg.GetPacketObject(state.buffer);

                switch(rcvmsg.msgid)
                {
                    case message_id.ping:
                        RdrMsgFormat sndmsg = new RdrMsgFormat();
                        sndmsg.msgid = message_id.ping_rply;
                        sndmsg.key = rcvmsg.key;
                        //Send the same ping value to client
                        SendMsgtoClient(handler,sndmsg);
                        break;
                    case message_id.id:

                        break;
                    case message_id.testmsg:

                        break;
                    default:

                        break;
                }

                handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
                    new AsyncCallback(RcvMsgHandler), state);
            }

            }
            catch (Exception e)
            {
            applog.loggen(e.ToString());
            }
        }