我有一個.NET控制檯應用程序,它從USB棒上讀取信息並吐出。我有一個監聽它並處理信息的AIR應用程序。在AIR和.NET控制檯應用程序之間發送/接收消息的最佳方式?
我的問題是,有時我的空氣應用程序似乎沒有處理一些消息,即使日誌顯示它們是從.net控制檯應用程序發送的。
這是我正在做的。
.NET
Trace.WriteLine("heart," & heartRate & "," & GetTimeStamp() & ",")
我有一堆的吐出信息不同的聽衆。我只是用逗號分隔值來發送它們。我加了一個逗號到底只是爲了確保我會吐的數組,如果兩線分別在空氣側一次拾起(可即使發生?)
AIR
public function ProcessConsoleData(data:String):void{
var tempArray:Array = data.split(",");
var pointUpdated:Boolean = false;
if (tempArray[0] == ("heart")){
if (_dataModel.DeviceHeartRate.IsDeviceAvailable != true){
_dataModel.DeviceHeartRate.IsDeviceAvailable = true;
}
_dataModel.DeviceHeartRate.HeartRate = int(tempArray[1]);
_dataModel.DeviceHeartRate.LastUpdate = tempArray[2] as Date;
}
的進程控制檯數據函數繼續像大約25 else一樣,如果具有不同值的tempArray [0](是的,我知道'正確'的事情是使用case語句,但我喜歡它與其他ifs)。
數據以相當快的速度進入應用程序。有時候只有100ms或者更少(沒有做任何基準測試)。有時空中應用程序不會處理髮送的數據。我不知道爲什麼,也很難調試。
有沒有人有更好的方法來保持從.NET到AIR的消息保真度?也許有人可以在我的邏輯中看到一個漏洞?
謝謝。
-Nate
消息通過標準輸出發送?如果完全丟失,它必須是AIR方面的錯誤。如果他們只是推遲了,我會想到標準沖洗。或者有些消息正在經歷stderr? – alxx 2011-03-11 08:02:39
他們正在通過,這只是我在空氣方面的IF聲明有時並不接受。我猜他們是通過一條線而不是兩條分開的線路來完成的。 – Nate 2011-03-11 21:03:51