示例#1
0
        private void UpdateRow0x09(ClientSession session, Data0x09 data)
        {
            var row = dtgCmd0x09.Rows.Cast <DataGridViewRow>().FirstOrDefault(x => !string.IsNullOrEmpty(x.Cells[COLUMN_NAME_SESSIONID_2]?.Value?.ToString()) &&
                                                                              session.SessionID == (x.Cells[COLUMN_NAME_SESSIONID_2]?.Value?.ToString()));

            if (row != null)
            {
                string ipECR         = ConvertToIPAddress(data.IP_ECR);
                string ipServer      = ConvertToIPAddress(data.IP_Server);
                string portServer    = (data.Port_Server[0].ConvertToHex() + data.Port_Server[1].ConvertToHex()).ConvertToPort();
                string ssid          = data.SSID.UnsafeAsciiBytesToString(0);
                string ssidLength    = data.SSID_Length.ToString();
                string key           = data.Key.UnsafeAsciiBytesToString(0);
                string keyLength     = data.Key_Length.ToString();
                string modeECR       = data.Mode_ECR.ToString();
                string ipServerECR   = ConvertToIPAddress(data.IP_Server_ECR);
                string portServerECR = (data.Port_Server_ECR[0].ConvertToHex() + data.Port_Server_ECR[1].ConvertToHex()).ConvertToPort();

                row.Cells[COLUMN_NAME_IP_ECR].Value          = ipECR;
                row.Cells[COLUMN_NAME_IP_SERVER].Value       = ipServer;
                row.Cells[COLUMN_NAME_PORT_SERVER].Value     = portServer;
                row.Cells[COLUMN_NAME_SSID].Value            = ssid;
                row.Cells[COLUMN_NAME_SSID_LENGTH].Value     = ssidLength;
                row.Cells[COLUMN_NAME_KEY].Value             = key;
                row.Cells[COLUMN_NAME_KEY_LENGTH].Value      = keyLength;
                row.Cells[COLUMN_NAME_MODE_ECR].Value        = modeECR;
                row.Cells[COLUMN_NAME_IP_SERVER_ECR].Value   = ipServerECR;
                row.Cells[COLUMN_NAME_PORT_SERVER_ECR].Value = portServerECR;
            }
        }
示例#2
0
        private void InsertRow0x09(ClientSession session, Data0x09 data)
        {
            string sessionID     = session.SessionID;
            string ipECR         = ConvertToIPAddress(data.IP_ECR);
            string ipServer      = ConvertToIPAddress(data.IP_Server);
            string portServer    = (data.Port_Server[0].ConvertToHex() + data.Port_Server[1].ConvertToHex()).ConvertToPort();
            string ssid          = data.SSID.UnsafeAsciiBytesToString(0);
            string ssidLength    = data.SSID_Length.ToString();
            string key           = data.Key.UnsafeAsciiBytesToString(0);
            string keyLength     = data.Key_Length.ToString();
            string modeECR       = data.Mode_ECR.ToString();
            string ipServerECR   = ConvertToIPAddress(data.IP_Server_ECR);
            string portServerECR = (data.Port_Server_ECR[0].ConvertToHex() + data.Port_Server_ECR[1].ConvertToHex()).ConvertToPort();

            dtgCmd0x09.Rows.Add(false, sessionID, ipECR, ipServer, portServer, ssid, ssidLength, key, keyLength, modeECR, ipServerECR, portServerECR);
        }
示例#3
0
        private Dictionary <ClientSession, Data0x09> GetData0x09()
        {
            Dictionary <ClientSession, Data0x09> data = new Dictionary <ClientSession, Data0x09>();

            foreach (var item in _dicSrc0x09)
            {
                ClientSession session  = item.Key;
                Data0x09      data0X09 = ConvertByteArrayToData0x09(item.Value.Data);
                if (!data.ContainsKey(session))
                {
                    data.Add(session, data0X09);
                }
                else
                {
                    data[session] = data0X09;
                }
            }

            return(data);
        }
示例#4
0
        private void StoreData0x09(ClientSession session, byte[] message)
        {
            Exec(() =>
            {
                byte[] data = new byte[message.Length - 7];
                Buffer.BlockCopy(message, 6, data, 0, message.Length - 7);

                Data0x09 data0X09 = ConvertByteArrayToData0x09(data);
                if (!_dic0x09.ContainsKey(session))
                {
                    _dic0x09.TryAdd(session, data0X09);
                    InsertRow0x09(session, data0X09);
                }
                else
                {
                    _dic0x09[session] = data0X09;
                    UpdateRow0x09(session, data0X09);
                }
            });
        }
示例#5
0
        public Frame AnalysisData(Data0x09 data)
        {
            Frame frame = new Frame()
            {
                Code = Constants.Hx09,
                Data = new byte[data.Length]
            };

            int indexOffArr = 0;

            //4 byte IP ECR
            for (int i = 0; i < data.IP_ECR.Length; i++)
            {
                frame.Data[indexOffArr] = data.IP_ECR[i];
                indexOffArr++;
            }

            //4 Byte IP SERVER
            for (int i = 0; i < data.IP_Server.Length; i++)
            {
                frame.Data[indexOffArr] = data.IP_Server[i];
                indexOffArr++;
            }

            //2 Byte Port SERVER
            for (int i = 0; i < data.Port_Server.Length; i++)
            {
                frame.Data[indexOffArr] = data.Port_Server[i];
                indexOffArr++;
            }

            //1 Byte độ dài SSID
            frame.Data[indexOffArr] = data.SSID_Length;
            indexOffArr++;

            //32 Byte SSID
            for (int i = 0; i < data.SSID.Length; i++)
            {
                frame.Data[indexOffArr] = data.SSID[i];
                indexOffArr++;
            }

            //1 Byte độ dài KEY
            frame.Data[indexOffArr] = data.Key_Length;
            indexOffArr++;

            //16 byte KEY
            for (int i = 0; i < data.Key.Length; i++)
            {
                frame.Data[indexOffArr] = data.Key[i];
                indexOffArr++;
            }

            //1 Byte chế độ ECR (ECR = 0, ECR_RF = 1)
            frame.Data[indexOffArr] = data.Mode_ECR;
            indexOffArr++;

            //4 Byte IP SERVER của ECR kết nối với tủ trung tâm trong chế độ tập tự do không chạy phần mềm trên máy tính
            for (int i = 0; i < data.IP_Server_ECR.Length; i++)
            {
                frame.Data[indexOffArr] = data.IP_Server_ECR[i];
                indexOffArr++;
            }

            //2 Byte Port SERVER của ECR kết nối với tủ trung tâm trong chế độ tập tự do không chạy phần mềm trên máy tính
            for (int i = 0; i < data.Port_Server_ECR.Length; i++)
            {
                frame.Data[indexOffArr] = data.Port_Server_ECR[i];
                indexOffArr++;
            }

            return(frame);
        }
示例#6
0
        private Data0x09 ConvertByteArrayToData0x09(byte[] arr)
        {
            Data0x09 data0X09 = new Data0x09();

            try
            {
                int indexOfArr = 0;

                //4 byte IP ECR
                for (int i = 0; i < data0X09.IP_ECR.Length; i++)
                {
                    data0X09.IP_ECR[i] = arr[indexOfArr];
                    indexOfArr++;
                }

                //4 Byte IP SERVER
                for (int i = 0; i < data0X09.IP_Server.Length; i++)
                {
                    data0X09.IP_Server[i] = arr[indexOfArr];
                    indexOfArr++;
                }

                //2 Byte Port SERVER
                for (int i = 0; i < data0X09.Port_Server.Length; i++)
                {
                    data0X09.Port_Server[i] = arr[indexOfArr];
                    indexOfArr++;
                }

                //1 Byte độ dài SSID
                data0X09.SSID_Length = arr[indexOfArr];
                indexOfArr++;

                //32 Byte SSID
                for (int i = 0; i < data0X09.SSID.Length; i++)
                {
                    data0X09.SSID[i] = arr[indexOfArr];
                    indexOfArr++;
                }

                //1 Byte độ dài KEY
                data0X09.Key_Length = arr[indexOfArr];
                indexOfArr++;

                //16 byte KEY
                for (int i = 0; i < data0X09.Key.Length; i++)
                {
                    data0X09.Key[i] = arr[indexOfArr];
                    indexOfArr++;
                }

                //1 Byte chế độ ECR (ECR = 0, ECR_RF = 1)
                data0X09.Mode_ECR = arr[indexOfArr];
                indexOfArr++;

                //4 Byte IP SERVER của ECR kết nối với tủ trung tâm trong chế độ tập tự do không chạy phần mềm trên máy tính
                for (int i = 0; i < data0X09.IP_Server_ECR.Length; i++)
                {
                    data0X09.IP_Server_ECR[i] = arr[indexOfArr];
                    indexOfArr++;
                }

                //2 Byte Port SERVER của ECR kết nối với tủ trung tâm trong chế độ tập tự do không chạy phần mềm trên máy tính
                for (int i = 0; i < data0X09.Port_Server_ECR.Length; i++)
                {
                    data0X09.Port_Server_ECR[i] = arr[indexOfArr];
                    indexOfArr++;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Đã xảy ra lỗi trong quá trình phân tích dữ liệu", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                FileHelper.WriteLogError("", ex.Message + Environment.NewLine + ex.StackTrace);
            }

            return(data0X09);
        }