static void Main(string[] args) { int port = 6066; if (args.Length >= 1) { port = Convert.ToInt32(args[0]); } Assembly asm = Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(asm.Location); Log.InfoFormat("DAC.Receiver({0}) started, listening on {1}", fvi.FileVersion, port); TranDataReceiver r = new TranDataReceiver(new GprsDtuServer(port)); r.Start(); r.OnClientConnected += (IDtuConnection c, WorkingStatus s) => { GprsDtuConnection c2 = (GprsDtuConnection)c; Log.InfoFormat("[Server] Client connected: {0}-ip={1},phone={2}", c2.DtuID, c2.IP, c2.PhoneNumber); }; r.OnTranMsgReceived += (TranMsgType type, TranMsg msg) => { TranMsg m2 = msg; Log.InfoFormat("[Server] Msg Received: id={3}, type={0},len={1}, pkg={2}", type, msg.LoadSize, msg.PackageCount, msg.ID); }; while (true) { string read = Console.ReadLine(); if (read == "exit") { break; } } }
[Timeout(10000)] // 10s public void TestReceiver() { DtuClient c = new DtuClient("127.0.0.1", 6066); TranDataReceiver r = new TranDataReceiver(new GprsDtuServer(6066)); r.Start(); c.Connect(20120049, "18900000000", "192.168.1.222"); c.OnReceived = (buff, len) => { Thread.Sleep(500); var msg = @"FA 2A 0C 00 01 74 01 FF 00 00 02 63 00 39 30 38 56 7A 28 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 38 56 7A 28 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 B8 70 80 28 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 B8 70 80 28 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 60 BA 01 29 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 60 BA 01 29 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 00 28 1C 29 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 00 28 1C 29 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 30 13 B0 29 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 30 13 B0 29 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 C0 E3 30 2A 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 63 00 39 30 C0 E3 30 2A 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 AF"; log.DebugFormat("[Client] Sending data..."); c.Send(ValueHelper.StrToToHexByte(msg)); }; // heartbeat, 激励 c.Send(new HeartBeatTranMsg(20120049, 0).Marshall()); int receivedCnt = 0; r.OnTranMsgReceived += (TranMsgType type, TranMsg msg) => { TranMsg m2 = msg; log.DebugFormat("[Server] Msg Received: id={3}, type={0},len={1}, pkg={2}", type, msg.LoadSize, msg.PackageCount, msg.ID); if (msg.ID == 0) { Assert.AreEqual(TranMsgType.HeartBeat, type); } else { Assert.AreEqual(TranMsgType.Dac, type); } receivedCnt++; }; while (receivedCnt <= 5) { Thread.Sleep(10); } c.Close(); log.DebugFormat("Test Done."); Assert.IsTrue(true); }