Beispiel #1
0
        private NetworkManager(OnDataRecievedListener form, int port)
        {
            this.listener = form;
            this.port     = port;
            instance      = this;



            Task.Run(() =>
            {
                while (true)
                {
                    try
                    {
                        if (!recievedQueue.IsCompleted)
                        {
                            PacketHandler.getInstance().parseRecievedPacket(form, recievedQueue.Take());
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Task Error => {0}", e.Message.ToString());
                    }
                }
            });
        }
Beispiel #2
0
 public static NetworkManager getInstance(OnDataRecievedListener _listener, int port)
 {
     if (instance != null)
     {
         return(instance);
     }
     else
     {
         return(new NetworkManager(_listener, port));
     }
 }
Beispiel #3
0
        public void parseRecievedPacket(OnDataRecievedListener listener, byte[] data)
        {
            try
            {
                if (Encoding.Default.GetString(data).Contains("Ready to Send SMS"))
                {
                    listener.onConnectionStarted();
                    return;
                }

                if (Encoding.Default.GetString(data).Contains(AbstractPacket.GSM_Sending_Error_text))
                {
                    listener.onGSMSendingError();
                    return;
                }


                RecievedPacket recPacket = new RecievedPacket(data);
                if (recPacket.AbsPacket != null)
                {
                    switch (recPacket.type)
                    {
                    case AbstractPacket.StructType.Registeration:
                        if (recPacket.AbsPacket.Cmd == AbstractPacket.WRITE_CMD)
                        {
                            listener.onWriteNumberRegister((RegisterationPacket)recPacket.AbsPacket);
                        }
                        else
                        {
                            listener.onReadNumberRegister((RegisterationPacket)recPacket.AbsPacket);
                        }
                        break;

                    case AbstractPacket.StructType.Activation:
                        if (recPacket.AbsPacket.Cmd == AbstractPacket.WRITE_CMD)
                        {
                            listener.onWriteActivate();
                        }
                        else
                        {
                            listener.onReadActivate((ActivationPacket)recPacket.AbsPacket);
                        }
                        break;

                    case AbstractPacket.StructType.Send:
                        listener.onSend();
                        break;

                    case AbstractPacket.StructType.AutoId:
                        listener.onAutoId((RegisterationPacket)recPacket.AbsPacket);
                        break;

                    case AbstractPacket.StructType.Delivery:
                        listener.onDelivery((DeliveryPacket)recPacket.AbsPacket);
                        break;

                    case AbstractPacket.StructType.AutoDelivery:
                        listener.onAutoDelivery((DeliveryPacket)recPacket.AbsPacket);
                        break;

                    case AbstractPacket.StructType.USSDWrite:
                        listener.onUSSDWrite();
                        break;

                    case AbstractPacket.StructType.USSDExecute:
                        listener.onUSSDExecute();
                        break;

                    case AbstractPacket.StructType.USSDRead:
                        listener.onUSSDRead((USSDPacket)recPacket.AbsPacket);
                        break;

                    case AbstractPacket.StructType.SMSText:
                        if (recPacket.AbsPacket.Cmd == AbstractPacket.WRITE_CMD)
                        {
                            listener.onMessageTextWrite();
                        }
                        else
                        {
                            listener.onMessageTextRead((SMSTextPacket)recPacket.AbsPacket);
                        }
                        break;

                    case AbstractPacket.StructType.Inbox:

                        listener.onReadInbox((InboxPacket)recPacket.AbsPacket);
                        break;

                    case AbstractPacket.StructType.AutoInbox:
                        listener.onAutoInbox((InboxPacket)recPacket.AbsPacket);
                        break;
                    }
                }

                return;
            }
            catch (Exception e)
            {
                Console.WriteLine(string.Format("Parse Packet Error => {0}", e.Message));
            }
        }