Пример #1
0
    public void AddMessage(RFPMessage message)
    {
        var mess = Instantiate(messageViewPrefab);

        mess.transform.SetParent(GetComponent <ScrollRect>().content, false);
        mess.GetComponentInChildren <TextMeshProUGUI>().text = message.ToString();
        mess.GetComponentInChildren <Button>().onClick.AddListener(() => GUIUtility.systemCopyBuffer = mess.GetComponentInChildren <TextMeshProUGUI>().text);
    }
 private void Start()
 {
     GetComponent <Button>().onClick.AddListener(() =>
     {
         int trameLength = 22 + 49 + 2;
         //trameLength -= 5;
         byte[] bin          = new byte[trameLength];
         int currentIndex    = 0;
         bin[currentIndex++] = (byte)'Z';
         bin[currentIndex++] = (byte)'I';
         bin[currentIndex++] = 1;
         ushort len          = (ushort)trameLength;
         bin[currentIndex++] = (byte)(len & 0xFF);
         bin[currentIndex++] = (byte)((len >> 8) & 0xFF);
         // Frame type
         bin[currentIndex++] = 1;
         //test
         //cluster
         //bin[currentIndex++] = 0;
         //dataflag
         //bin[currentIndex++] = 0;
         //frequency
         //bin[currentIndex++] = 0;
         //Array.Copy(BitConverter.GetBytes(868350), 0, bin, currentIndex, 4);
         Array.Copy(BitConverter.GetBytes(43920), 0, bin, currentIndex, 4);
         currentIndex += 4;
         //RFLevel
         bin[currentIndex++] = (byte)0;
         //floorNoise
         bin[currentIndex++] = (byte)0;
         //pulseElementSize
         bin[currentIndex++] = 1;
         //number
         Array.Copy(BitConverter.GetBytes(49), 0, bin, currentIndex, 2);
         currentIndex += 2;
         //repeat
         bin[currentIndex++] = 0;
         //delay
         bin[currentIndex++] = 0;
         //multiply
         byte multiply       = 40;
         bin[currentIndex++] = multiply;
         //time
         Array.Copy(BitConverter.GetBytes(0), 0, bin, currentIndex, 4);
         currentIndex  += 4;
         int vid        = int.Parse(id.text);
         int vpulseTime = int.Parse(pulseTime.text);
         currentIndex  += 1;            // first 0
         for (int i = 0; i < 20; i++)
         {
             if (((vid >> (19 - i)) & 1) == 1)
             {
                 bin[currentIndex + 2 * i]     = (byte)(vpulseTime / multiply * 3);
                 bin[currentIndex + 2 * i + 1] = (byte)(vpulseTime / multiply);
             }
             else
             {
                 bin[currentIndex + 2 * i]     = (byte)(vpulseTime / multiply);
                 bin[currentIndex + 2 * i + 1] = (byte)(vpulseTime / multiply * 3);
             }
         }
         currentIndex += 40;
         int vcommand  = int.Parse(command.text);
         for (int i = 0; i < 4; i++)
         {
             if (((vcommand >> (3 - i)) & 1) == 1)
             {
                 bin[currentIndex + 2 * i]     = (byte)(vpulseTime / multiply * 3);
                 bin[currentIndex + 2 * i + 1] = (byte)(vpulseTime / multiply);
             }
             else
             {
                 bin[currentIndex + 2 * i]     = (byte)(vpulseTime / multiply);
                 bin[currentIndex + 2 * i + 1] = (byte)(vpulseTime / multiply * 3);
             }
         }
         currentIndex     += 8;
         bin[currentIndex] = (byte)(vpulseTime / multiply);
         RFPMessage test   = new RFPMessage(RFPMessage.MessageType.BINARY, bin, 0, bin.Length);
         Debug.Log(test.ToString());
         rfplayer.SendBinaryCommand(bin);
     });
 }