public void DataPack_FullCrcField()
 {
     DataPack_t myDataPack = new DataPack_t(testPack);
     myDataPack.CRC16 = 0;
     myDataPack.FullCrcAndPrefixField();
     Assert.IsTrue(myDataPack.CRC16 == 0x1718);
 }
        public void AddNewByte(byte b)
        {
            // если первый байт совпадает с началом префикса, то активирум пакет
            if (bCounter == 0)
            {
                if (b != Constants.POCKET_HI_PREFIX) return;
                bStatus = SmartDataBufState.ACTIVE;
            }
            buf[bCounter] = b;

            // проверяем вторую часть префикса
            if (bCounter == 1)
            {
                // если перфикс не совпадает - метим пакет как пустой
                if (b != Constants.POCKET_LO_PREFIX)
                {
                    ClearPocket();
                    return;
                }
            }
            //пакет готов когда все байты получены
            bCounter++;
            if (bCounter == Constants.POCKET_LENGTH)
            {
                DataPack = new DataPack_t(buf);
                if (DataPack.CRC16 == DataPack.CalcCRC())
                {
                    bStatus = SmartDataBufState.READY;
                    //DataPack.RxTime = DateTime.Now;
                }
                else ClearPocket();
            }
        }
 public void DataPack_CheckCRCMetod()
 {
     DataPack_t myDataPack = new DataPack_t(testPack);
     Assert.IsTrue(myDataPack.CalcCRC()==0x1718);
     myDataPack.Data = 0;
     Assert.IsTrue(myDataPack.CalcCRC() != 0x1718);
 }
Exemple #4
0
 public void SendDataPack(DataPack_t p)
 {
     byte[] bArray = p.ConverToBytes();
     foreach (byte b in bArray)
     {
         if (NewByteReceived != null) NewByteReceived(b);
     }
 }
 public void FakeDev_callSendDataPack_BytesMastFlow()
 {
     FakeDevForm testForm = new FakeDevForm();
     ISerialByteReciver testReciever = Substitute.For<ISerialByteReciver>();
     DataPack_t testDataPack=new DataPack_t(testPack);
     testForm.AddReceiver(testReciever);
     testForm.SendDataPack(testDataPack);
     testReciever.Received(Constants.POCKET_LENGTH).NewByteReceivedEventHandler(Arg.Any<byte>());
 }
 public void SendPacket(byte bCommand = 0, byte bAddr = Constants.COMM_RX_DEF, UInt32 uiData = 0, UInt16 uiReserv = 0)
 {
     DataPack_t myNewPack = new DataPack_t();
     myNewPack.Command = bCommand;
     myNewPack.Addr = bAddr;
     myNewPack.Data = uiData;
     myNewPack.Reserv = uiReserv;
     myNewPack.FullCrcAndPrefixField();
     tTxQueue.Add(myNewPack);
 }
 public void DataPack_ByteToDataPack_constractor()
 {
     DataPack_t myDataPack = new DataPack_t(testPack);
     Assert.IsTrue(myDataPack.Pref == Constants.POCKET_PREFIX);
     Assert.IsTrue(myDataPack.CRC16 == 0x1718);
     Assert.IsTrue(myDataPack.Command == 0xff);
     Assert.IsTrue(myDataPack.Addr == 0x11);
     Assert.IsTrue(myDataPack.Reserv == 0x00);
     Assert.IsTrue(myDataPack.Data == 0x33445566);
 }
 public void DataPack_ConvertToBytes_correct()
 {
     DataPack_t dp=new DataPack_t();
     dp.Pref = Constants.POCKET_PREFIX;;
     dp.CRC16 = 0x1718;
     dp.Command = 0xff;
     dp.Addr = 0x11;
     dp.Reserv = 0x00;
     dp.Data = 0x33445566;
     byte[] bArray = dp.ConverToBytes();
     Assert.IsTrue(bArray.SequenceEqual(testPack));
 }
        public void PointGen_GetCorrectDataCollection_PointGenerate()
        {
            DataPack_t tPack = new DataPack_t();
            IPointRecever<stPoint3D> fakeChart3D = Substitute.For<IPointRecever<stPoint3D>>();
            Pointsource3D myPointGen = new Pointsource3D(fakeChart3D);
            tPack.Addr = Constants.COMM_RX_PREASURE;
            tPack.Data = 500;
            tPack.FullCrcAndPrefixField();
            myPointGen.OnNext(tPack);

            tPack.Addr = Constants.COMM_RX_TENZO;
            tPack.Data = 700;
            tPack.FullCrcAndPrefixField();
            myPointGen.OnNext(tPack);

            tPack.Addr = Constants.COMM_RX_LENGTH;
            tPack.Data = 123;
            tPack.FullCrcAndPrefixField();
            myPointGen.OnNext(tPack);

            // в этот момент на выходе должна появиться следующая точка:
            stPoint3D tTestPoint;
            tTestPoint.uiX=500;
            tTestPoint.uiY=700;
            tTestPoint.uiZ=123;

            tPack.Addr = Constants.COMM_RX_TENZO;
            tPack.Data = 500;
            tPack.FullCrcAndPrefixField();
            myPointGen.OnNext(tPack);

            tPack.Addr = Constants.COMM_RX_PREASURE;
            tPack.Data = 700;
            tPack.FullCrcAndPrefixField();
            myPointGen.OnNext(tPack);

            // должна быть только одна правильная точка
            fakeChart3D.Received(1).AddPoint(tTestPoint);
        }
 public void SmartDataBuf_AddNewBytes_CompareToEtalon()
 {
     // прием образцового пакета
     p.ClearPocket();
     AddManyBytes(testPack);
     Assert.IsTrue(p.GetStatus() == SmartDataBufState.READY);
     DataPack_t myDataPack = new DataPack_t(testPack);
     Assert.IsTrue(myDataPack.Pref == p.DataPack.Pref);
     Assert.IsTrue(myDataPack.CRC16 == p.DataPack.CRC16);
     Assert.IsTrue(myDataPack.Command == p.DataPack.Command);
     Assert.IsTrue(myDataPack.Addr == p.DataPack.Addr);
     Assert.IsTrue(myDataPack.Reserv == p.DataPack.Reserv);
     Assert.IsTrue(myDataPack.Data == p.DataPack.Data);
     byte[] array;// = new byte[Constants.POCKET_LENGTH];
     array = myDataPack.ConverToBytes();
     Assert.IsTrue(array.SequenceEqual(testPack));
 }