Awesome
MOS-Connection
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
andmodel
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.