Struggling to get AntPlus device working

I am trying to get data from an Ant Plus device, but getting a vague error.

The code is copied direct from a 4 year old post from Travis.  The error I get is "Failed invoking <symbol>" when querying data.power.  What is wrong?  

SDK is 3.1.9.  Device is Edge520 Plus.

using Toybox.AntPlus as AntPlus;
using Toybox.Timer as Timer;
using Toybox.System as Sys;
using Toybox.WatchUi as Ui;

class antplus_test extends Ui.View
{
	hidden var _M_bikePower;
	hidden var _M_bikePowerListener;
	
	function initialize() {
		View.initialize();
		_M_bikePowerListener = new AntPlus.BikePowerListener();
		_M_bikePower = new AntPlus.BikePower(_M_bikePowerListener);
	}
	
	hidden var _M_timer;
	
	function onShow() {
		_M_timer = new Timer.Timer();
		_M_timer.start(self.method(:requestUpdate), 1000, true);
	}
	
	function onHide() {
		_M_timer.stop();
		_M_timer = null;
	}
	
	function onUpdate(dc) {
		var data = _M_bikePower.getCalculatedPower();
		Sys.println(data.power);
	}
}

Exact error message is:

Error: Unexpected Type Error
Details: Failed invoking <symbol>
Stack: 
  - onUpdate() at E:\Aeromotive\Velosense\ConnectIQ\Eclipse\VeloView\source\antplus_test.mc:31 0x1000186c 

On the line "Sys.println(data.power);"