Skip to content

cristian-recoseanu/nmos-control-scripty-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nmos-control-scripty-client

Build Checks

This is an example NMOS client implementing IS-12.
It serves as an implementation sample for Controller vendors, showcasing how to interact with device models expressed by MS-05-02 through the IS-12 protocol.

Get started

Install dependencies

npm install

Update initial variables with your target device so it can find the IS-12 control endpoint

var deviceIs04Address = "127.0.0.1";
var deviceIs04Port = 3000;
var is04DeviceId = "67c25159-ce25-4000-a66c-f31fff890265";
var is04Version = "v1.3";

Build

npm run build

Run

npm start

Working features

The following features are working:

  • Finding the IS-12 control endpoint (urn:x-nmos:control:ncp/v1.0) inside an IS-04 device resource
  • Establishing a WebSocket connection to the IS-12 control endpoint for bidirectional communication
  • Sending Command messages and receiving Command Response messages by pairing their handles (IS-12 messages)
  • Sending Subscription messages and consuming Notification messages devices send whenever object properties change (IS-12 schemas)
  • Invoking the generic Get method of any object to retrieve the value of any property (NcObject)
  • Invoking the generic Set method of any object to set the value of any property (NcObject)
  • Finding all members implementing a specific classId by using the FindMembersByClassId method in blocks (NcBlock)
  • Discovering all objects of a device model by using the GetMemberDescriptors method (NcBLock)
  • Finding all receiver monitor objects inside a device model (BCP-008-01 and NcReceiverMonitor)

To do

The following features are planned:

  • Showing how to find a particular object by its role path so we can retrieve its oid (using FindMembersByPath in NcBlock)
  • Showing how to find all sender monitor objects in a device model (using FindMembersByClassId in NcBlock to find NcSenderMonitor members)
  • Showing how to retrieve the descriptor of any class so we can consume it generically (using GetControlClass in NcClassManager)
  • Showing how to retrieve the descriptor of any datatype so we can consume it generically (using GetDatatype in NcClassManager)

Other useful resources

Here are other resources available around NMOS Control & Monitoring:

Releases

No releases published

Contributors 2

  •  
  •