public static void Service() { client.ClientStartRead(); byte[] dataBytes = client.ClientGetRxData(); byte type = client.ClientGetRxType(); Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket(); if (type == (byte)ValidPacketTypes.motus_1_raw_data_packet) { packet.Serialize(dataBytes); short[] sData = packet.DeSerialize(); int[] data = new int[sData.Length]; for (int i = 0; i < data.Length; i++) { data[i] = (int)sData[i]; } DataStorageTable.SetMotus_1_Data(data); if (logRawData) { string msg = data[0].ToString(); for (int i = 1; i < data.Length; i++) { msg += "," + data[i].ToString(); } Logger.LogMessage(msg); } } }
public void SocketWrapper_TestEndToEnd() { SocketWrapper server = new SocketWrapper(Configuration.server); SocketWrapper client = new SocketWrapper(Configuration.client); DataQueue knownData = new DataQueue(); DataQueue toSend = new DataQueue(); DataQueue toRecieve = new DataQueue(); short[] known = new short[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; byte[] payload = new byte[known.Length * 2]; Buffer.BlockCopy(known, 0, payload, 0, payload.Length); Motus_1_RawDataPacket dummyPacket = new Motus_1_RawDataPacket(payload); for (int i = 0; i < knownData.MaxSize; i++) { knownData.Add(dummyPacket); toSend.Add(dummyPacket); } server.StartServer(); server.ServerSetTxData(toSend); Assert.IsTrue(toSend.IsEmpty()); client.ClientStartRead(); Thread.Sleep(1000); Assert.IsTrue(client.ClientHasData()); client.ClientGetRxData(toRecieve); Assert.AreEqual(toRecieve.Count, toRecieve.MaxSize); while (!toRecieve.IsEmpty()) { Motus_1_RawDataPacket packetKnown = new Motus_1_RawDataPacket(knownData.Get()); Motus_1_RawDataPacket packetTest = new Motus_1_RawDataPacket(toRecieve.Get()); short[] payloadKnown = packetKnown.DeSerialize(); short[] payloadTest = packetTest.DeSerialize(); for (int i = 0; i < payloadKnown.Length; i++) { Assert.AreEqual(known[i], payloadKnown[i]); Assert.AreEqual(payloadKnown[i], payloadTest[i]); } } }