Skip to content

Fork of Sofie MOS Connection: A Part of the Sofie TV Studio Automation System

License

Notifications You must be signed in to change notification settings

bbc/sofie-mos-connection

 
 

Repository files navigation

MOS-Connection

Tests codecov Quality Gate Status

@mos-connection/connector NPM Version @mos-connection/helper NPM Version @mos-connection/model NPM Version

MOS-Connection is a Node.js library to communicate, using the MOS Protocol, with systems such as Newsroom Computer Systems (NRCS) or other MOS devices.

Features include:

  • Acting as a MOS Device (ie a client), connecting to an NRCS.
  • Acting as a NRCS (ie a server), allowing other MOS Devices to connect to it.
  • Helpful tools for developing MOS Plugins and parsing MOS data.
  • A simple tool for testing MOS connections, called Quick-MOS.

This library is developed as a part of the Sofie TV Automation System.

General Sofie System Information


Packages

MOS-Connection consists of 4 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.

Getting Started

Installation

npm install @mos-connection/connector

Usage

_See more examples in the examples folder, or the QuickMos implementation!

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!


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.

About

Fork of Sofie MOS Connection: A Part of the Sofie TV Studio Automation System

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.1%
  • Other 0.9%