xapi-roomkit-macro-debugging
template
Yeoman generator for
Yeoman generator for template from https://github.com/dev-experience/xapi-roomkit-macro-debugging.
Repository template for xAPI` Room Kit Macros.
If you are developing xAPI Macros, this is for you (see "Problem statement" below).
Quickstart
-
Install Node.js and NPM.
-
Install Visual Studio Code with JavaScript support.
-
Install Yeoman globally:
Run
npm install -g yo
. -
Install the template globally:
Run
npm install -g generator-xapi-roomkit-macro-debugging
. -
Create an empty directory.
-
Scaffold a template into that directory.
- Switch to the directory.
- Run
yo xapi-roomkit-macro-debugging
.
-
Check out README.md or see the docs below.
-
Try to debug sample macro:
- Open the directory in Visual Studio Code.
- Set URL and credentials for your device in the
.env
file. - Open the
macros/1-showVolume.js
. - Press 'F5'.
- Check the output in "Debug Console".
-
To create your own macro, make a copy of the
macros/0-emptyMacro.js
.
xapi-roomkit-macro-debugging
template documentation (copied from the template with minor updates)
xAPI Room Kit macro debugging template
Repository template is helpful for developing and debugging your macros.
Problem statement
It's quite hard to write a good macro for a Cisco Room Kit CE device.
- You need to log in to the device and write your code in the browser.
- CE Macro Editor is too simple.
- It doesn't provide you any debugging capabilities.
- It's complaining about
async
/await
and confusing you with errors. - You need to copy-paste the code all the time to store it as a file and commit your macros to Git repository.
Solution
Just use the Yeoman generator generator-xapi-roomkit-macro-debugging
.
And you will be able to:
-
Keep your macros in files. It makes easy to commit your changes to GIT for change history.
-
Run your macros from your local machine in Visual Studio Code.
-
Use code completion for JavaScript in Visual Studio Code.
-
Debug your macros:
- Step-by-step execution.
- Observe current variable values.
- Put a breakpoint to stop the execution and to see what is going on.
-
Use
await
for promises to simplify your code.
How to
Prerequisites
-
Install Visual Studio Code with JavaScript support:
Visual Studio Code
-
Install Node.js with NPM:
-
Prepare files (or use Yeoman template, see above):
- Create empty directory.
- Copy all the files from current repository there.
-
Run
npm install
in the directory (only once).
Develop and debug
-
Open the directory in Visual Studio Code.
-
Open sample macro 'https://raw.githubusercontent.com/dev-experience/generator-xapi-roomkit-macro-debugging/v0.2.0/macros/1-showVolume.js'.
-
Put a breakpoint on any
console.log(...)
statement by pressing 'F9'. -
Run debugging by pressing 'F5' while you are in the tab with a macro you want to debug
- Visual Studio Code will run special script '_bootstrap.js' by
node
. - Script will load
xapi
and will check environment variables required to connect to the device to execute macro. - Script will load you macro and run it.
- All output from the macro will be visible in Debug Console in Visual Studio Code.
- Visual Studio Code will run special script '_bootstrap.js' by
-
Enjoy the debugging with:
-
Step-by-step execution (press 'F10' to advance), watching variable values (hover a variable by mouse).
-
Simple promises handling with
await
and without.then()
:const volume = await xapistatus;const nbActiveCalls = await xapistatus;const doNotDisturbStatus = await xapistatus;const tandbyState = await xapistatus;const peopleCount = await xapistatus;instead of
xapistatus;
-
Learn
"Writing xAPI Macros 101"
Check out a mini-course "Writing xAPI Macros 101" on YouTube:
[Playlist] [Presentation]
"JavaScript for xAPI Macros 101"
[Playlist]
see)
Template files (-
Current docs.
-
Metadata and dependencies definition. Run
npm install
once to installjsxapi
. -
Excludes particular files and directories from GIT commits. Help to make your repository clean and tidy.
-
Launch configuration for Visual Studio Code. Enables debugging by 'F5'
-
Script which is being executed when you press 'F5'.
Helps to load
xapi
, check environment variables, connects to the device, loads the macro for debugging -
Helps you to set device URL, username, and password to connect to the device. File is added to
.gitignore
, so you will not accidentially commit the password to a GIT repository. -
Put all your macros there
-
Sample macro to check out debugging capabilities.
-
Copy this one to create your new macro.
-
-
Documentation files.
-
Cisco Macro Scripting Tutorial.
Additional resources
-
Handy samples for xAPI Macros
https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/xapi-samples
-
New to xAPI Macros?
- Check the QuickStart Guide to learn to load Controls and Macros to your device.
- Take a DevNet Tutorial from the xAPI track (intro to xAPI and creating custom UI Extensions).
-
Don't have a CE device at hand to mess up with?
- Reserve a DevNet sandbox equiped with CE latest.
-
Going further
Once you're done browsing the examples in this repo, here are a few suggestions
- Check the official Macro Samples repository.
- Load the Postman collection for xAPI to invoke the xAPI from code external to the Room Device.
- Read through the full CE Customization PDF Guide.
- Check for the curated list of resources at awesome-xapi.