I’m getting an error that I’m having a bit of a struggle to figure out what’s going on. I have built an application using the car wash example (which uses the UI library and multiple screens). It’s been working fine until recently, where I can’t seem to be able to execute the line:
var displayController = GHIElectronics.TinyCLR.Devices.Display.DisplayController.GetDefault();
I get the following error:
Step into: Stepping over non-user code ‘GHIElectronics.TinyCLR.Devices.Display.Provider.DisplayControllerApiWrapper.DisplayControllerApiWrapper’
#### Exception System.InvalidOperationException - CLR_E_INVALID_OPERATION (1) ####
#### Message:
#### GHIElectronics.TinyCLR.Devices.Display.Provider.DisplayControllerApiWrapper::Acquire [IP: 0000] ####
#### GHIElectronics.TinyCLR.Devices.Display.Provider.DisplayControllerApiWrapper::.ctor [IP: 0015] ####
#### GHIElectronics.TinyCLR.Devices.Display.DisplayController::FromName [IP: 000c] ####
#### GHIElectronics.TinyCLR.Devices.Display.DisplayController::GetDefault [IP: 001a] ####
#### Water_System_Display.Program::DoTestWPF [IP: 0019] ####
#### Water_System_Display.Program::Main [IP: 0008] ####
Exception thrown: ‘System.InvalidOperationException’ in GHIElectronics.TinyCLR.Devices.Display.dll
The code is set up based on the car wash example, with the following:
using System.IO;
using System.Threading;
//using MBN;
//using MBN.Modules;
using System.Text;
using GHIElectronics.TinyCLR.Devices.Adc;
using GHIElectronics.TinyCLR.Devices.Display;
using GHIElectronics.TinyCLR.Devices.Gpio;
using GHIElectronics.TinyCLR.Devices.Storage;
using GHIElectronics.TinyCLR.Devices.I2c;
using GHIElectronics.TinyCLR.Devices.Network;
using GHIElectronics.TinyCLR.Networking.Mqtt;
using GHIElectronics.TinyCLR.Devices.Rtc;
using GHIElectronics.TinyCLR.Devices.Spi;
using GHIElectronics.TinyCLR.Drivers.FocalTech.FT5xx6;
using GHIElectronics.TinyCLR.Native;
using GHIElectronics.TinyCLR.Pins;
using GHIElectronics.TinyCLR.IO;
using GHIElectronics.TinyCLR.UI;
using GHIElectronics.TinyCLR.UI.Media;
using GHIElectronics.TinyCLR.UI.Controls;
namespace Water_System_Display
{
class Program : Application
{
... bunch of constants declared here........
public Program(DisplayController d) : base(d)
{
}
private static bool linkReady = false;
static void Main()
{
var controller = GpioController.GetDefault();
DoTestWPF();
}
static Program app;
static FT5xx6Controller touch;
static void DoTestWPF()
{
var backlight = GpioController.GetDefault().OpenPin(SC20260.GpioPin.PA15);
backlight.SetDriveMode(GpioPinDriveMode.Output);
backlight.Write(GpioPinValue.High);
var displayController = GHIElectronics.TinyCLR.Devices.Display.DisplayController.GetDefault();
…
Any idea why I can’t initalize displayController?
Thanks for your help!! - John