У меня есть консольное приложение .NET, которое считывает информацию с USB-накопителя и выплевывает ее.У меня есть приложение AIR, которое прослушивает его и обрабатывает информацию.
Моя проблема в том, что иногда мое эфирное приложение не обрабатывает некоторые сообщения, даже если в журнале показано, что они были отправлены сКонсольное приложение .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, если значения с различными значениями для tempArray [0] (Да, я знаю, что «правильное» решение - использовать оператор case, но мне нравится это сеще, если).
Данные поступают в приложение довольно быстро.Иногда всего 100 мс, а может и меньше (не делали никаких тестов).Иногда эфирное приложение не обрабатывает отправленные данные.Я не знаю почему, и это трудно отладить.
У кого-нибудь есть лучший способ сохранить точность сообщений от .NET к AIR?Может быть, кто-то может увидеть дыру в моей логике?
Спасибо.
-Nate