//*********************************************************************
        public static void SendData(SimulatorPacket pack)
        {
            Key _Pk = new Key(pack.PacketFrequency, pack.PacketChannel, pack.Destination);

            try
            {
                Type packet_type = null;
                if (pack != null)
                {
                    packet_type = pack.GetType();
                    if (packet_type == typeof(Connect))
                    {
                        _ConnectCounter++;

                        if (_ConnectCounter == 36000)
                        {
                            _ConnectCounter = 0;
                        }
                    }
                    else if (packet_type == typeof(ConnectionACK))
                    {
                        _ConnectAckCounter++;

                        if (_ConnectAckCounter == 36000)
                        {
                            _ConnectAckCounter = 0;
                        }
                    }
                    ArrayList LocalPackets = null;
                    if (_packets.ContainsKey(_Pk))
                    {
                        LocalPackets = (ArrayList)_packets[_Pk];
                        if (LocalPackets == null)
                        {
                            LocalPackets = new ArrayList();
                        }
                        LocalPackets.Add(pack);
                        _packets[_Pk] = LocalPackets;
                    }
                    else
                    {
                        LocalPackets = new ArrayList();
                        LocalPackets.Add(pack);
                        _packets.Add(_Pk, LocalPackets);
                    }
                    // Thread newThread = new Thread(() => ThreadableSendData(_Pk, pack));
                    // newThread.Name = "ThreadableSendData ";
                    //newThread.Start();
                    ThreadPool.QueueUserWorkItem(new WaitCallback((s) => ThreadableSendData(_Pk, pack)));
                }
            }
            catch (Exception ex) {
                if (DebugLogEnabled)
                {
                    AddToLog("[SendData] Exception:" + ex.Message);
                }
            }
        }
Exemple #2
0
        //*********************************************************************
        public void SendData(SimulatorPacket pack)
        {
            Key _Pk = new Key(pack.PacketBand, pack.PacketChannel, pack.Destination);

            try
            {
                if (pack != null)
                {
                    if (pack.GetType() == typeof(Connect))
                    {
                        _ConnectCounter++;

                        if (_ConnectCounter == 36000)
                        {
                            _ConnectCounter = 0;
                        }
                    }
                    else if (pack.GetType() == typeof(ConnectionACK))
                    {
                        _ConnectAckCounter++;

                        if (_ConnectAckCounter == 36000)
                        {
                            _ConnectAckCounter = 0;
                        }
                    }
                    ArrayList LocalPackets = null;
                    if (_packets.ContainsKey(_Pk))
                    {
                        LocalPackets = (ArrayList)_packets[_Pk];
                        if (LocalPackets == null)
                        {
                            LocalPackets = new ArrayList();
                        }
                        LocalPackets.Add(pack);
                        _packets[_Pk] = LocalPackets;
                    }
                    else
                    {
                        LocalPackets = new ArrayList();
                        LocalPackets.Add(pack);
                        _packets.Add(_Pk, LocalPackets);
                    }
                }
                Thread newThread = new Thread(() => ThreadableSendData(_Pk, pack));
                newThread.Start();
            }
            catch (Exception ex) { AddToLog("[SendData] Exception:" + ex.Message); }
        }