GazeData ParseMarkerData(string[] dataArray) { List<uint> convertedData = new List<uint>(); List<float> convertedDataF = new List<float>(); for (int i = 0; i < 8; i++) { string item = dataArray[i]; if (string.IsNullOrEmpty(item)) { convertedData.Add(0); continue; } else { int value = int.Parse(item); if (value > 0) convertedData.Add((uint)value); else convertedData.Add(0); } } convertedDataF.Add(string.IsNullOrEmpty(dataArray[8]) ? 0 : float.Parse(dataArray[8])); convertedDataF.Add(string.IsNullOrEmpty(dataArray[9]) ? 0 : float.Parse(dataArray[9])); for (int i = 40; i <= 47; i++) { string item = dataArray[i]; if (string.IsNullOrEmpty(item)) { convertedDataF.Add(0); continue; } else convertedDataF.Add(float.Parse(item)); } GazeData gazeData = new GazeData(convertedData[0], convertedData[1], convertedData[2] == 1 ? true : false, (ushort)convertedData[3], (ushort)convertedData[4], (ushort)convertedData[5], (ushort)convertedData[6], (ushort)convertedData[7], convertedDataF[0], convertedDataF[1], convertedDataF[2], convertedDataF[3], convertedDataF[4], convertedDataF[5], convertedDataF[6], convertedDataF[7], convertedDataF[8], convertedDataF[9]); return gazeData; }
GazeData ParseNoMarkerData(string[] dataArray) { List<uint> convertedData = new List<uint>(); for (int i=0; i < 8; i++) { string item = dataArray[i]; if (string.IsNullOrEmpty(item)) { convertedData.Add(0); continue; } else { int value = int.Parse(item); if (value > 0) convertedData.Add((uint)value); else convertedData.Add(0); } } GazeData gazeData = new GazeData(convertedData[0], convertedData[1], convertedData[2] == 1 ? true : false, (ushort)convertedData[3], (ushort)convertedData[4], (ushort)convertedData[5], (ushort)convertedData[6], (ushort)convertedData[7]); return gazeData; }
protected override void ProcessData(byte[] data) { if (data == null) return; string text = Encoding.ASCII.GetString(data, 0, data.Length); string[] dataArray = text.Split('\t'); if (dataArray == null) return; LastGazeData = dataArray.Length == 8 ? ParseNoMarkerData(dataArray) : ParseMarkerData(dataArray); //LogEvent.Engine.Write(LastGazeData.ToString()); }