Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions source/CommsRelay.mc
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
using Toybox.Communications as Comms;
using Toybox.Lang;

class CommsRelay extends Comms.ConnectionListener {
hidden var mCallback;
hidden var mCallback as Lang.Method;

function initialize(callback) {
function initialize(callback as Lang.Method) {
ConnectionListener.initialize();
mCallback = callback;
}

function onComplete() {
function onComplete() as Void {
mCallback.invoke(true);
}

function onError() {
function onError() as Void {
mCallback.invoke(false);
}
}
15 changes: 8 additions & 7 deletions source/Log.mc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Toybox.System;
using Toybox.Lang;

enum {
LOG_LEVEL_VERBOSE,
Expand All @@ -9,40 +10,40 @@ enum {
}

class Log {
private var logLevel = null;
public function initialize(_logLevel) {
private var logLevel as Lang.Number?;
public function initialize(_logLevel as Lang.Number?) {
logLevel = _logLevel;
}

public function verbose(message) {
public function verbose(message as Lang.Object or Lang.String or Null) as Void {
if (logLevel != null && logLevel <= LOG_LEVEL_VERBOSE) {
System.print("VERBOSE: ");
System.println(message);
}
}

public function debug(message) {
public function debug(message as Lang.Object or Lang.String or Null) as Void {
if (logLevel != null && logLevel <= LOG_LEVEL_DEBUG) {
System.print("DEBUG: ");
System.println(message);
}
}

public function info(message) {
public function info(message as Lang.Object or Lang.String or Null) as Void {
if (logLevel != null && logLevel <= LOG_LEVEL_INFO) {
System.print("INFO: ");
System.println(message);
}
}

public function warning(message) {
public function warning(message as Lang.Object or Lang.String or Null) as Void {
if (logLevel != null && logLevel <= LOG_LEVEL_WARNING) {
System.print("WARNING: ");
System.println(message);
}
}

public function error(message) {
public function error(message as Lang.Object or Lang.String or Null) as Void {
if (logLevel != null && logLevel <= LOG_LEVEL_ERROR) {
System.print("ERROR: ");
System.println(message);
Expand Down
8 changes: 5 additions & 3 deletions source/QZCompanionGarminDelegate.mc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class QZCompanionGarminDelegate extends WatchUi.BehaviorDelegate {
return true;
}

var session = null; // set up session variable
var session as ActivityRecording.Session?; // set up session variable

function onBack() {
if (Toybox has :ActivityRecording) {
Expand All @@ -37,13 +37,15 @@ class QZCompanionGarminDelegate extends WatchUi.BehaviorDelegate {
session = ActivityRecording.createSession({ // set up recording session
:name=>"QZ Run", // set session name
:sport=>Activity.SPORT_RUNNING, // set sport type
:subSport=>Activity.SUB_SPORT_INDOOR_RUNNING // set sub sport type
:subSport=>Activity.SUB_SPORT_INDOOR_RUNNING, // set sub sport type
:disableGps=>true // disable GPS to save battery
});
} else {
session = ActivityRecording.createSession({ // set up recording session
:name=>"QZ Ride", // set session name
:sport=>Activity.SPORT_CYCLING, // set sport type
:subSport=>Activity.SUB_SPORT_INDOOR_CYCLING // set sub sport type
:subSport=>Activity.SUB_SPORT_INDOOR_CYCLING, // set sub sport type
:disableGps=>true // disable GPS to save battery
});
}
session.start(); // call start session
Expand Down
92 changes: 53 additions & 39 deletions source/QZCompanionGarminView.mc
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ using Toybox.Communications;

class QZCompanionGarminView extends WatchUi.View {

hidden var timer;
private var _HR;
private var hr;
private var _FOOTCAD;
private var foot_cad;
private var _ELAPSED;
private var _INFO;
private var _POWER;
private var power = 0;
private var speed = 0;
public static var bike = false;
hidden var message = new Communications.PhoneAppMessage();
hidden var timer as Timer.Timer?;
private var _HR as WatchUi.Text?;
private var hr as Lang.Number?;
private var _FOOTCAD as WatchUi.Text?;
private var foot_cad as Lang.Number?;
private var _ELAPSED as WatchUi.Text?;
private var _INFO as WatchUi.Text?;
private var _POWER as WatchUi.Text?;
private var power as Lang.Number = 0;
private var speed as Lang.Float = 0;
public static var bike as Lang.Boolean = false;
hidden var message as Communications.PhoneAppMessage = new Communications.PhoneAppMessage();

function initialize() {
View.initialize();
Expand Down Expand Up @@ -80,19 +80,19 @@ class QZCompanionGarminView extends WatchUi.View {
// standard dictionary
var message = [
{
0 => hr,
1 => foot_cad,
2 => power,
3 => speed,
},
];
0 => hr as Lang.Number?,
1 => foot_cad as Lang.Number?,
2 => power as Lang.Number,
3 => speed as Lang.Float,
} as Lang.Dictionary<Lang.Number, Lang.Number or Lang.Float or Null>
] as Lang.Array<Lang.Dictionary>;
//$.log.verbose("Transmitting message.");
Communications.transmit(message, null, new CommsRelay(method(:onTransmitComplete)));
//$.log.verbose("Message transmitted.");
}

// If you're debugging a problem with connecting/transmitting message, consult `README.md`.
function onTransmitComplete(isSuccess) {/*
function onTransmitComplete(isSuccess as Lang.Boolean) as Void {/*
if (isSuccess) {
$.log.info("Message sent successfully.");
} else {
Expand Down Expand Up @@ -123,23 +123,27 @@ class QZCompanionGarminView extends WatchUi.View {

var info = Activity.getActivityInfo();
if(info != null) {
var seconds_elapsed = (info.elapsedTime/1000);
var elapsed_s = seconds_elapsed % 60;
var elapsed_h = seconds_elapsed / 3600;
var elapsed_m = (seconds_elapsed / 60) - (elapsed_h * 60);
_ELAPSED.setText(elapsed_h.format("%02d") + ":" + elapsed_m.format("%02d") + ":" + elapsed_s.format("%02d") );
}

if (info.currentSpeed != null) {
speed = info.currentSpeed;
}
if(_ELAPSED != null) {
var seconds_elapsed = (info.elapsedTime/1000);
var elapsed_s = seconds_elapsed % 60;
var elapsed_h = seconds_elapsed / 3600;
var elapsed_m = (seconds_elapsed / 60) - (elapsed_h * 60);
_ELAPSED.setText(elapsed_h.format("%02d") + ":" + elapsed_m.format("%02d") + ":" + elapsed_s.format("%02d") );
}

if (info has :currentPower && info.currentPower != null) {
power = info.currentPower;
if(power > 0) {
bike = true;
if (info.currentSpeed != null) {
speed = info.currentSpeed;
}

if (info has :currentPower && info.currentPower != null) {
power = info.currentPower;
if(power > 0) {
bike = true;
}
string_POWER = power.toString() + "W";
} else {
string_POWER = "---W";
}
string_POWER = power.toString() + "W";
} else {
string_POWER = "---W";
}
Expand All @@ -148,12 +152,16 @@ class QZCompanionGarminView extends WatchUi.View {
{
hr = sensor_info.heartRate;
string_HR = hr.toString() + "bpm";
_INFO.setText("");
if(_INFO != null) {
_INFO.setText("");
}
}
else
{
string_HR = "---bpm";
_INFO.setText("press start");
if(_INFO != null) {
_INFO.setText("press start");
}
}

if( sensor_info.cadence != null )
Expand All @@ -166,9 +174,15 @@ class QZCompanionGarminView extends WatchUi.View {
string_FOOTCAD = "---rpm";
}

_HR.setText("HR: " + string_HR);
_FOOTCAD.setText("STEP: " + string_FOOTCAD);
_POWER.setText("PWR: " + string_POWER);
if(_HR != null) {
_HR.setText("HR: " + string_HR);
}
if(_FOOTCAD != null) {
_FOOTCAD.setText("STEP: " + string_FOOTCAD);
}
if(_POWER != null) {
_POWER.setText("PWR: " + string_POWER);
}

WatchUi.requestUpdate();
}
Expand Down