Exemple #1
0
 Packet CreatePacket(byte net, byte id, UInt16 oc, byte[] content)
 {
     Packet p = new Packet();
     p.TargetDeviceID = id;
     p.TargetSubnetID = net;
     p.OriginalDeviceType = 64000;
     p.OriginalDeviceID = 254;
     p.OriginalSubnetID = 254;
     p.OperationCode = oc;
     p.Content = content;
     p.FixHeader();
     p.FixLength();
     return (p);
 }
Exemple #2
0
 private void tmrSendKey_Tick(object sender, EventArgs e)
 {
     if (WaitingForResponse)
     {
         log(LogTypes.MissKeyResponse, "@_@");
         SystemSounds.Exclamation.Play();
         faili = true;
     }
     if (chbPing.Checked)
     {
         Packet p = new Packet() { OperationCode = 0xE, OriginalDeviceID = 0xF4, OriginalSubnetID = 0xF4, TargetDeviceID = 0xFF, TargetSubnetID = 0xFF, OriginalDeviceType = 65530 };
         p.FixHeader();
         p.FixLength();
         p.FixCRC();
         comm.SendPacket(p);
     }
     else
     {
         byte channelno = (byte)rnd.Next(0, 32);
         if (channelno == 32)
             channelno = 255;
         else
             channelno = (byte)((channelno % 8) + 1);
         byte value;
         if (channelno == 255)
         {
             value = (byte)(rnd.Next(0, 2) * 100);
             if (value == 100)
                 for (int i = 0; i < 4; stat[i] = true, i++) ;
             else
                 for (int i = 0; i < 4; stat[i] = false, i++) ;
         }
         else
         {
             if (stat[channelno])
             {
                 value = 0; stat[channelno] = false;
             }
             else
             {
                 value = 100; stat[channelno] = true;
             }
         }
         byte[] cntnt = PCSingleChannelControl.GetNew(channelno, value, 0, 1);
         Packet p = new Packet();
         p.OriginalDeviceType = 0xABC0;
         p.OriginalDeviceID = 0xC0;
         p.OriginalSubnetID = 1;
         p.TargetDeviceID = 1;
         p.TargetSubnetID = 1;
         p.OperationCode = 0x31;
         p.Content = cntnt;
         p.FixLength();
         p.FixHeader();
         p.FixCRC();
         WaitingForResponse = true;
         comm.SendPacket(p);
         sw.Restart();
         SSend++; lblSSend.Text = SSend.ToString();
         log(LogTypes.SendKey, string.Format("{2} key {0} to {1}", channelno, value, SSend.ToString().PadLeft(7, '0')));
     }
 }
Exemple #3
0
 private void btnPing_Click(object sender, EventArgs e)
 {
     Packet p = new Packet() { OperationCode = 0xE, OriginalDeviceID = 0xF4, OriginalSubnetID = 0xF4, TargetDeviceID = 0xFF, TargetSubnetID = 0xFF, OriginalDeviceType = 65530 };
     p.FixHeader();
     p.FixLength();
     p.FixCRC();
     SendPacket(p);
     //SP.Write(p.Data, 0, p.Data.Length);
 }
Exemple #4
0
 private void btnSendPacket_Click(object sender, EventArgs e)
 {
     Packet p = new Packet()
     {
         OriginalSubnetID = Convert.ToByte(textBox3.Text, 16),
         OriginalDeviceID = Convert.ToByte(textBox4.Text, 16),
         OriginalDeviceType = Convert.ToUInt16(textBox5.Text, 16),
         OperationCode = getOperationCode(),
         TargetSubnetID = Convert.ToByte(textBox7.Text, 16),
         TargetDeviceID = Convert.ToByte(textBox8.Text, 16),
         Content = Util.Text2ByteA(textBox9.Text)
     };
     SendPacket(p);
     //byte[] buff = p.Data;
     //SP.Write(buff, 0, buff.Length);
 }
Exemple #5
0
        PacketContentBase LogPacket(Packet packet)
        {
            try
            {
                var lvi = lstPackets.Items.Insert(0, lstPackets.Items.Count.ToString());
                lvi.SubItems.Add(DateTime.Now.ToString("mm:ss.ff"));
                lvi.SubItems.Add(Convert.ToString(packet.OriginalSubnetID, 16) + "-" + Convert.ToString(packet.OriginalDeviceID, 16));
                lvi.SubItems.Add(Convert.ToString(packet.TargetSubnetID, 16) + "-" + Convert.ToString(packet.TargetDeviceID, 16));
                lvi.SubItems.Add(Convert.ToString(packet.OriginalDeviceType, 16));
                lvi.SubItems.Add(Convert.ToString(packet.OperationCode, 16));
                PacketContentBase pc = packet.ParseContent();
                lvi.SubItems.Add(Util.ByteA2Text(packet.Content) + (pc == null ? " S:" + System.Text.ASCIIEncoding.ASCII.GetString(packet.Content) : " : " + pc.ToString()));
                return pc;
            }
            catch (Exception)
            {
                return null;
            }

        }
Exemple #6
0
        public void SendPacket(Packet p)
        {
            byte[] buff = p.Data;
            if (udpMode)
            {
                byte[] bufff = new byte[buff.Length + udpHeader.Length];
                udpHeader.CopyTo(bufff, 0);
                buff.CopyTo(bufff, udpHeader.Length);
                udpS.Send(bufff, bufff.Length);

                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < bufff.Length; i++)
                    sb.Append(Convert.ToString(bufff[i], 16) + " ");
                Invoke(new DataRecivedDLG(NewData), "<" + sb.ToString() + ">");

            }
            else
            {
                SP.Write(buff, 0, buff.Length);
                LogPacket(p);
            }
        }
Exemple #7
0
 private void PacketRecived(byte[] data)
 {
     Packet packet = new Packet(data);
     if (packetReceivedEvnt != null) packetReceivedEvnt(packet);
     PacketContentBase pc = LogPacket(packet);
     if (chbResponse.Checked && pc != null)
     {/*
         IPacketContent responser = pc.GetResponse();
         if (responser != null)
         {
             byte[] respContent = responser.Generate();
             if (respContent.Length > 0)
             {
                 var respPacket = new Packet
                 {
                     OperationCode = responser.OprationCode,
                     OriginalDeviceType = 65534,
                     OriginalSubnetID = packet.TargetSubnetID,
                     OriginalDeviceID = packet.TargetDeviceID,
                     TargetDeviceID = 255,
                     TargetSubnetID = 255,
                     Content = respContent
                 };
                 SendPacket(respPacket);
             }
         }*/
     }
 }
Exemple #8
0
 //********************************************************************************************************************
 void comm_packetReceivedEvnt(Packet p)
 {
     device d = null;
     switch (p.OperationCode)
     {
         case 0xF://readRemarkResp
             log(p, "RRemarkResp received. " + (new PCReadDeviceRemarksResponse(p.Content)).ToString());
             bool exit = false;
             foreach (device dvc in devices)
                 if (dvc.id == p.OriginalDeviceID && dvc.net == p.OriginalSubnetID)
                     exit = true;
             if (!exit)
             {
                 d = new device() { id = p.OriginalDeviceID, net = p.OriginalSubnetID, deviceType = p.OriginalDeviceType };
                 d.remarks = p.Content;
                 devices.Add(d);
                 ReloadDevices();
                 System.Threading.Thread.Sleep(200);
                 comm.SendPacket(CreatePacket(p.OriginalSubnetID, p.OriginalDeviceID, 0xF003));//mac
                 //comm.SendPacket(CreatePacket(p.OriginalSubnetID, p.OriginalDeviceID, 0xABC0));//deviceInfo
             }
             break;
         case 0xF004:
             PCMACAddress mac = new PCMACAddress(p.Content);
             log(p, "MAC received. " + mac.ToString());
             d = getDevice(p);
             if (d != null)
             {
                 d.mac = p.Content;
                 if (selDevice == d)
                     txtMac1.Text = Util.ByteA2Text(d.mac);
             }
             break;
         case 0xABC1:
             PCInfo info = new PCInfo(p.Content);
             log(p, "Info received. " + info.ToString());
             d = getDevice(p);
             if (d != null)
             {
                 d.info = info;
                 d.keys = new PCKeyConfig[info.GetByte(6)];
                 if (selDevice == d)
                 {
                     lblRCP.Visible = true;
                     txtInputCount.Text = selDevice.info.GetByte(6).ToString();
                     txtOutputCount.Text = selDevice.info.GetByte(7).ToString();
                     txtLocked.Text = selDevice.info.GetByte(8).ToString();
                     txtSWVersion.Text = selDevice.info.GetWord(4).ToString();
                     txtHWVersion.Text = selDevice.info.GetWord(2).ToString();
                 }
             }
             break;
         case 0xABC3:
             PCMixConfig cfg = new PCMixConfig(p.Content);
             log(p, "MixConfig received. " + cfg.ToString());
             d = getDevice(p);
             if (d != null)
             {
                 if (selDevice == d)
                 {
                     MixChkLock.Checked = cfg._data[0] != 0;
                     MixChkCurtainMode.Checked = cfg._data[1] != 0;
                 }
             }
             break;
         case 0xABC7:
             PCKeyConfig k = new PCKeyConfig(p.Content);
             selDevice.keys[p.Content[0]] = k;
             break;
         case 0xF002:
             log(p, "Set MAC result: " + (p.Content[0] == PacketContentBase.ValueSuccess ? "Success" : "Failed"));
             break;
         case 0xF006:
             log(p, "Set ID result: " + (p.Content[0] == PacketContentBase.ValueSuccess ? "Success" : "Failed"));
             break;
         case 0xABC5:
             log(p, "Set Mix Config result: " + (p.Content[0] == PacketContentBase.ValueSuccess ? "Success" : "Failed"));
             break;
         case 0xABC9:
             log(p, "Set KeyConfig result: " + (p.Content[0] == PacketContentBase.ValueSuccess ? "Success" : "Failed"));
             break;
     }
 }
Exemple #9
0
 device getDevice(Packet p) { return getDevice(p.OriginalSubnetID, p.OriginalDeviceID); }
Exemple #10
0
 public void log(Packet p, string s)
 {
     lstLog.Items.Insert(0, "(" + Convert.ToString(p.OriginalSubnetID, 16) + "." + Convert.ToString(p.OriginalDeviceID, 16) + ")" + s);
 }
Exemple #11
0
 private void Form1_Load(object sender, EventArgs e)
 {
     p = new Packet();
     LoadData();
 }