public void SendWorkoutStatusNotification() { if (controlState == BLEProtocol.WorkoutControlState.Stop) { timestamp = 0; count = 0; rpm = 0; heartrate = 0; } else if (controlState == BLEProtocol.WorkoutControlState.Start) { ++timestamp; count += 2; rpm = 120; heartrate = 0; } BLEDebug.LogInfo("Sending WorkoutStatusNotification"); BLEPluginInstance.SendMessage("ReceivePluginMessage", BLEProtocol.ConvertBytesToString( BLENotify.PrepareWorkoutStatusBytes( timestamp, count, rpm, heartrate ) ) ); }
public void ReceiveUnityMessage(string message) { byte[] messageData = BLEProtocol.ConvertStringToBytes(message); if (!BLEProtocol.ValidateData(messageData)) { BLEDebug.LogError("Received Message Failed Validation - Ignoring"); } byte actionCode = BLEProtocol.GetActionCode(messageData); switch (actionCode) { case BLEProtocol.ActionCode.Acknowledge: // Factory doesn't use this so we shouldn't be using it either BLEDebug.LogWarning("Acknowledge Received"); break; case BLEProtocol.ActionCode.GetDeviceInformation: BLEPluginInstance.SendMessage("ReceivePluginMessage", BLEProtocol.ConvertBytesToString( BLEResponse.PrepareDeviceInformationBytes( modelID, hardwareMajor, hardwareMinor, firmwareMajor, firmwareMinor, firmwarePatch ) ) ); break; case BLEProtocol.ActionCode.GetErrorLog: // TODO - Low Priority break; case BLEProtocol.ActionCode.GetResistanceLevelRange: BLEPluginInstance.SendMessage("ReceivePluginMessage", BLEProtocol.ConvertBytesToString( BLEResponse.PrepareResistanceLevelRangeBytes( resistanceLevelMin, resitanceLevelMax ) ) ); break; case BLEProtocol.ActionCode.GetWorkoutControlState: BLEPluginInstance.SendMessage("ReceivePluginMessage", BLEProtocol.ConvertBytesToString( BLEResponse.PrepareWorkoutControlStateBytes( controlState ) ) ); break; case BLEProtocol.ActionCode.GetResistanceLevel: BLEPluginInstance.SendMessage("ReceivePluginMessage", BLEProtocol.ConvertBytesToString( BLEResponse.PrepareResistanceLevelBytes( resistanceLevel ) ) ); break; case BLEProtocol.ActionCode.SetWorkoutControlState: controlState = messageData[BLEProtocol.Index.WorkoutControlState]; BLEPluginInstance.SendMessage("ReceivePluginMessage", BLEProtocol.ConvertBytesToString( BLENotify.PrepareWorkoutControlStateBytes( controlState ) ) ); break; case BLEProtocol.ActionCode.SetResistanceLevel: resistanceLevel = messageData[BLEProtocol.Index.ResistanceLevel]; BLEPluginInstance.SendMessage("ReceivePluginMessage", BLEProtocol.ConvertBytesToString( BLENotify.PrepareResistanceLevelBytes( resistanceLevel ) ) ); break; default: BLEDebug.LogError("Error: Received Invalid ActionCode"); break; } }