As the title suggests, I am trying to implement custom libraries with the Arduino support package, but I can't get them to register. I'm using 2017b on Windows 10. Support package is version 17.2.0.
I've tried with the three example tutorials (LCD, Ultrasonic, and HelloWorld), and no luck getting them to register.
I have definitely added my arduino libraries to the path, along with my working directory that has my package directories and .m files. I've un/re-installed the support packages (in admin mode and not) and no luck. I did the thing they suggest for troubleshooting here
Here is my HelloWorld.h file:
#include "LibraryBase.h" class HelloWorld : public LibraryBase {public: HelloWorld(MWArduinoClass& a){ libName = "ExampleAddon/HelloWorld"; a.registerLibrary(this); }public: void commandHandler(byte cmdID, byte* dataIn, unsigned int payloadSize){ switch (cmdID){ case 0x01:{ byte val [13] = "Hello World"; sendResponseMsg(cmdID, val, 13); break; } default:{ // Do nothing } } }}
And here is my HelloWorld.m:
classdef HelloWorld < arduinoio.LibraryBase properties(Access = private, Constant = true) READ_COMMAND = hex2dec('01') end properties(Access = protected, Constant = true) LibraryName = 'ExampleAddon/HelloWorld' DependentLibraries = {} ArduinoLibraryHeaderFiles = {} CppHeaderFile = fullfile(arduinoio.FilePath(mfilename('fullpath')), 'src', 'HelloWorld.h') CppClassName = 'HelloWorld' end methods function obj = HelloWorld(parentObj) obj.Parent = parentObj; obj.Pins = []; end function out = read(obj) cmdID = obj.READ_COMMAND; inputs = []; output = sendCommand(obj, obj.LibraryName, cmdID, inputs); out = char(output); end endend
No matter what I try, the end result is always the same:
6×1 cell array {'Adafruit/MotorShieldV2'} {'I2C' } {'RotaryEncoder' } {'SPI' } {'Servo' } {'ShiftRegister' }
Any thoughts? Thanks!
Best Answer