/// /// @brief Receive gestures from server /// public SensoHandGesture[] GetGestures() { if (GesturesCount > 0) { SensoHandGesture[] receivedGestures = new SensoHandGesture[GesturesCount]; var enumerator = gestures.GetEnumerator(); for (int i = 0; enumerator.MoveNext(); ++i) { receivedGestures[i] = enumerator.Current; } gestures.Clear(); GesturesCount = 0; return(receivedGestures); } else { return(null); } }
/// /// @brief Parses JSON packet received from server /// private ESensoPositionType processJsonStr(string jsonPacket) { ESensoPositionType receivedType = ESensoPositionType.Unknown; JSONNode parsedData = null; try { parsedData = JSON.Parse(jsonPacket); } catch (Exception ex) { Debug.LogError("packet " + jsonPacket + " parse error: " + ex.Message); } if (parsedData != null) { if (parsedData["type"].Value.Equals("position")) { var dataNode = parsedData["data"]; receivedType = getPositionFromString(dataNode["type"].Value); try { handSamples[(int)receivedType].parseJSONNode(dataNode); } catch (Exception ex) { receivedType = ESensoPositionType.Unknown; Debug.LogError(ex.Message); } } else if (parsedData["type"].Value.Equals("gesture")) { SensoHandGesture aGesture = new SensoHandGesture(parsedData["data"]); gestures.AddLast(aGesture); ++GesturesCount; } else if (parsedData["type"].Value.Equals("battery")) { var dataNode = parsedData["data"]; int ind = (int)getPositionFromString(dataNode["type"].Value); batteryValues[ind] = dataNode["level"].AsInt; } else { Debug.Log("Received unknown type: " + parsedData["type"]); } } return(receivedType); }