Skip to content

nrkno/sofie-mos-connection

Repository files navigation

Sofie MOS-Connection

Tests codecov Quality Gate Status

This is the MOS-Connection library of the Sofie TV Automation System, used for connecting to a MOS device using the MOS Protocol.

General Sofie System Information


Getting Started

Installation

npm install @mos-connection/connector
or
yarn add @mos-connection/connector

Usage

See more examples in the examples folder!

import { MosConnection } from '@mos-connection/connector'

let mos = new MosConnection(new ConnectionConfig({
	mosID: 'my.mos.application',
	acceptsConnections: true,
	profiles: {
		'0': true,
        '1': true,
        '2': true,
        '4': true
	},
	openRelay: true
	debug: false
}))
mos.onConnection((device: MosDevice) => { // called whenever there is a new connection to a mos-device
	if (device.hasConnection) { // true if we can send messages to the mos-server
	    device.getMachineInfo().then((lm) => {
			console.log('Machineinfo', lm)
		})
	}
	// Setup callbacks to pipe data:
	device.onRequestMachineInfo(() => {})
	device.onCreateRunningOrder((ro) => {})
	device.onDeleteRunningOrder((RunningOrderID: MosString128) => {})
	device.onReadyToAir(() => {})
	// ...
})

Quick-MOS

"Quick-MOS" is a simple MOS application that can be used to test the MOS-connection library.

It reads data-files from disk and pretends to be an NRCS, so you can connect other MOS-clients to it.

See Quick-MOS for more information.

MOS Support

The MOS-Connection library currently supports the MOS Protocol version 2.8.5.

Supported MOS Profiles

Profile Status
Profile 0 Implemented
Profile 1 Implemented
Profile 2 Implemented
Profile 3 Implemented
Profile 4 Implemented
Profile 5 Not implemented (yet)
Profile 6 Not implemented (yet)
Profile 7 Not implemented (yet)

Pull Requests for the remaining profiles would be happily accepted!

Packages

MOS-Connection consists of 3 packages:

  • @mos-connection/connector is a Node.js library is used to connect to MOS devices or act as a MOS Server/NCS. The helper and model functionality is included in this library as well.
  • @mos-connection/helper is a library that provides various functions useful for those that prepare/handle data that will be sent to (or has been received by) the MOS-connection. The model functionality is included in this library as well.
  • @mos-connection/model is a library that contains types and enums, useful for applications that handles MOS-data.

There is also a helper application quickMos designed to be a minimal mock MOS server for testing client applications.


The NRK logo is a registered trademark of Norsk rikskringkasting AS. The license does not grant any right to use, in any way, any trademarks, service marks or logos of Norsk rikskringkasting AS.