Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
blocks:app-note:isaac [2024-01-22 12:48]
mattias
blocks:app-note:isaac [2024-01-22 13:47] (current)
mattias
Line 1: Line 1:
 =====ISAAC integration===== =====ISAAC integration=====
  
-This application note shows the steps involved in setting up Blocks to communicate with Smart Monkeys ISAAC A/V monitor and management system. +This application note shows the steps involved in setting up Blocks to communicate with [[https://www.isaacplatform.com/|Smart Monkeys ISAAC]] A/V monitor and management system. 
  
-===Setup the Issac device===+===The Isaac device===
 Please follow the vendors documentation for the device setup. This documentation aims to explain the necessary steps to be taken in Blocks. Please follow the vendors documentation for the device setup. This documentation aims to explain the necessary steps to be taken in Blocks.
-The Pixilab Blocks module must be loaded in Isaac.+
  
 ===Make the driver available to the server=== ===Make the driver available to the server===
-Copy the driver files Isaac.js (driver) and Issac.ts (source code file) from the drivers-archive to the drivers directory in PIXILAB-Block-root/script. +Copy the driver files Isaac.js (driver) and Isaac.ts (source code file) from the drivers-archive to the drivers directory in PIXILAB-Block-root/script/
  
-===Configure the driver using driver options=== +===Configure the driver === 
-Open the blocks editor and add the Issac system as a Network device.  In the driver options field we must add some configuration using JSON. +Open the blocks editor and add the Issac system as a Network device.  In the driver //custom options// field we must add some configuration using JSON syntax
 A typical example will look like this:  A typical example will look like this: 
 +
 <code> <code>
 { {
Line 19: Line 20:
   "variables": ["Realm.ISAAC.variable.isaacCounter.value"],    "variables": ["Realm.ISAAC.variable.isaacCounter.value"],
   "events": ["ISAAC.examples.addOne","ISAAC.examples.removeOne"],    "events": ["ISAAC.examples.addOne","ISAAC.examples.removeOne"],
-  "subsystemExternalId": "BlocksISE"+  "subsystemExternalId": "Blocks"
 } }
 </code> </code>
 +
  
 Where: Where:
Line 30: Line 32:
 //heartbeatInterval// (optional, number) How often to send "heartbeats" to Isaac, in mS for the health indication. //heartbeatInterval// (optional, number) How often to send "heartbeats" to Isaac, in mS for the health indication.
  
-//variables//  (optional, string array) An array of full paths to properties exposed as Isaac variables.+//variables//  (optional, string array) An array of full property paths to properties we want to be logged in ISAAC. 
 + 
 +//events// (optional, string array) An array of tasks specified as name.group.task exposed as Isaac events. This allow the task to be called from i.e. an ISAAC schedule. 
 + 
 + 
 +===Sending log messages from Blocks=== 
 + 
 +The driver exposes a callable named //log// that can be used in task programming to log messages to ISAAC. 
 + 
 +===Steps in ISSAC=== 
 + 
 +Register the Pixilab Blocks module under setup/modules in the ISSAC system. 
 +The events and the variables specified in the driver will be added automatically. Please note, full-stop and commas are prohibited in the ISAAC scheduler so edit the name of the variables and events once discovered in ISAAC. 
 +At this point it is possible to use the schedules in ISAAC to run any of the specified tasks by scheduling that event at a specific time. It is also possible to track any changes to specified variables.  
  
-//events// (optional, string array) An array of tasks specified as name.group.task exposed as Isaac events. This allow the task to be called from i.e an ISAAC schedule.+Please use the vendors documentation for any details on how to use ISAAC.