Skip to content
rstrouse edited this page Aug 14, 2021 · 2 revisions

General Concepts

Understanding a few concepts related to REM configuration will simplify your configuration. These include connections, interfaces, devices, feeds, and triggers. Each of these items perform a specific function within the REM software.

Connections

REM acts as a broker for hardware items. It communicates between other applications including njsPC, MQTT brokers, or websocket based software using connections. Once a connection is defined on the general page, it is available for feeds.

nodejs-PoolController (njsPC)

REM communicates with njsPC through its socket and REST interfaces. This provides a bi-directional interface between REM and njsPC with high availability and performance.

MQ Telemetry Transport (MQTT) Broker

A connection to an MQTT broker will allow you to trigger items in REM such as relays and calibrations as well as feed data to the broker when the data for the hardware changes. Topics and data formats can be easily defined within the GUI.

Websocket Connection

Websocket connections can be used to communicate with other web based platforms. The payload for the socket event can be defined for the information being sent to the external program. This gives you total control over the format and values for the socket event and its payload.

Hardware Interfaces

A hardware interface in REM describes the method in which REM will communicate with the hardware. The possible interfaces in REM are I2c, SPI, GPIO, and Generic. The protocols for each of these hardware interfaces are built into REM so there is no need to create this from scratch. However, in order to simplify the configuration of the hardware device and provide standardized interfaces for interacting with it, the list of supported hardware is limited to the devices that have had hardware profiles built into the software.

Inter Integrated Circuit (I2c) Bus

REM simplifies the connectivity to devices interfaced through I2c. The supported devices are determined by the device definitions in REM. These translate command interface communication that is specific to the device into a common layout.

Serial Peripheral Interface (SPI) Bus

REM supports spi communication for analog to digital signals. The typical adc channel communication is a single value output that ranges within the maximum bit values for the chip.

General Purpose Input/Output (GPIO)

GPIO pins are supported for both input and output devices on the microcomputer. Pins that are not explicitly activated in REM are available to other devices and not explicitly exported for use in REM.

Generic Devices

Generic devices in REM really have no hardware interface at all. For the most part their role is one of a translator where analog to digital signals can be translated into real world values. For instance, an ADC may output value between 0-1023 for pressure and the generic pressure transducer device will translate that value into pounds per square inch.

Devices

Devices are hardware items that are connected to a bus. For instance, you may have an I2c relay board attached to the I2c bus. The device definition contains all the necessary command interface to allow easy operation of the relays on the board.

Feeds

Feeds are device outputs that are sent to connections when values change for a device. For instance, a 10k temperature sensor can be set up to send out a notification to njsPC when the temperature changes.

Triggers

Triggers are device inputs that change the state of the device. Not all devices support triggers because they are output only devices. For instance, a 10k temperature sensor only outputs data it doesn't make things hotter or colder.