protected override void processMessage(Msg msg) { if (msg.msgType == RemoteFile.Constants.RMF_MSG_CONNECT) { throw new System.ArgumentException("Not applicable for c# version (handled in onConnected)"); } else if (msg.msgType == RemoteFile.Constants.RMF_MSG_FILEINFO) { Apx.File file = (Apx.File)msg.msgData3; Console.WriteLine("processMessage, Name of file: " + file.name); List <byte> data = RemoteFileUtil.packHeader(RemoteFile.Constants.RMF_CMD_START_ADDR, false); List <byte> payload = RemoteFileUtil.packFileInfo(file, "<"); data.AddRange(payload); if (transmitHandler != null) { transmitHandler.send(data); } } else if (msg.msgType == RemoteFile.Constants.RMF_MSG_WRITE_DATA) { uint address = msg.msgData1; List <byte> data = RemoteFileUtil.packHeader(address); List <byte> payload = (List <byte>)msg.msgData3; data.AddRange(payload); if (transmitHandler != null) { transmitHandler.send(data); } } else if (msg.msgType == RemoteFile.Constants.RMF_MSG_FILEOPEN) { List <byte> data = RemoteFileUtil.packHeader(RemoteFile.Constants.RMF_CMD_START_ADDR); List <byte> payload = RemoteFileUtil.packFileOpen(msg.msgData1); data.AddRange(payload); if (transmitHandler != null) { transmitHandler.send(data); } } else { throw new System.ArgumentException("Unknown msgType"); } }
public void Test_packFileOpen() { List <byte> blist = new List <byte>(); blist = RemoteFileUtil.packFileOpen(0x12345678, "<"); // Address Assert.AreEqual(blist[7], (byte)0x12); Assert.AreEqual(blist[6], (byte)0x34); Assert.AreEqual(blist[5], (byte)0x56); Assert.AreEqual(blist[4], (byte)0x78); // Command (RMF_CMD_FILE_OPEN == 10 / 0x0A) Assert.AreEqual(blist[3], (byte)0x00); Assert.AreEqual(blist[2], (byte)0x00); Assert.AreEqual(blist[1], (byte)0x00); Assert.AreEqual(blist[0], (byte)0x0A); }