Serial/COM/RS-232

Communications with a Serial Port requires either a virtual Serial driver or physical hardware. Any serial device (Arduino/RPi/PLC) should work, it will be the code on the device that may need to be customized to match. Examples will be provided in my GitHub (https://www.github.com/porisius/FicsitRemoteMonitoring) and is open for anyone wanting to provide their update/config.

FRM serial communication can be configured on a serial port of your choosing (Default: COM3). This can be modified by either modifying the COM_Port value in %SatisfactoryRootFolder%\FactoryGame\Configs\FicsitRemoteMonitoring\SerialDevices.cfg (Config File Method).

The serial driver, by default, is not activated until the appropriate chat command is provided. You may also have the serial driver auto-start by changing the COM_Autostart to true.

Chat Commands:

/frmserial start - Starts the serial driver
/frmserial stop - Stops the serial driver

Data from Serial is in JSON and presented as a string, but their true data types are listed in the table. Input/Output is from the perspective of the FRM mod. Output, FRM sends. Input, FRM receives. You may have FRM auto-send getPower to you every delay per the settings in the FRM config. Please note that Auto_Serial is enabled, the mod will not listen for input. This is due to issues with

You may also have your own delay on your serial device and send API Endpoints to FRM to get an output. API Endpoints may be sent manually or programmicly, but require a "copy/paste" approach.
Developer’s Note: Tests show that all the data is sent, however, my terminal program only shows 4KB of data regardless of attempts. More information is required.

Theoritical Ardunio Code, shown below: (used for testing ArduinoKit)

void setup() {
  Serial.begin(9600); // Setup serial
}

void loop() {
  Serial.print("getPower"); // Send request for getPower API Endpoint
  if(Serial.available() > 0) { // Is there unread information?
    readSData = Serial.read(); // Read from the serial port
    // do something with data
  }
}

API Endpoints can be sent over using the following,

Serial.print("<API Endpoint>"); // Send request for <API Endpoint>
Serial.println("<API Endpoint>"); // Send request for <API Endpoint> with a line break

A MUCH better example will be from kikookraft and his efficiency terminal. (Links provided with permission.) Reddit: https://www.reddit.com/r/SatisfactoryGame/comments/x4yioi/i_created_an_efficiency_monitoring_terminal_with/ GitHub: https://github.com/kikookraft/satisfactory-efficiency-terminal

Any examples of works may be posted on the mod page and the documentation site, with permission of the project’s auther.