DarComm

This is a simple application, written in Java and SWT to connect to and monitor and record output from a serial connection. I wrote it for personal use really but thought some people might like to have it so have supplied the executable .JAR files for your pleasure.

This application listens for messages, data, and data headings. It uses this tagged information to show it to you. For an example, check out the Arduino sketch below:

DarComm

DarComm is a simple Serial Port plotter and debugger. Taking its data from the device (tagged headers and data) it displays the serial output:

  • The straight serial output
  • A table of the latest data entries (with headings describing each one)
  • A table of the last received data entries
  • A series of user-defined graphs to plot the data received

It can also:

  • Limit the displayed data to the 'n' received item.
  • Record every 'n' item(s) of received data to a series of .csv files.
  • Save and load the configuration to share with colleagues / clients.

Operation

This is a simple application, written in Java and SWT to connect to and monitor and record output from a serial connection. I wrote it for personal use really but thought some people might like to have it so have supplied the executable .JAR files for your pleasure.

This application listens for messages, data, and data headings. It uses this tagged information to show it to you. For an example, check out the Arduino sketch below:


int counter = 0;
bool isLabels = true;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  if (isLabels) {
    Serial.println("Hello, this is the application title");
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  if (++counter % 50 == 0 && isLabels) {
    Serial.println("{H}Time|bool|int|float");
  }
  Serial.print("{D}");
  Serial.print(millis());
  Serial.print("|");
  Serial.print(random(0,10) > 5 ? "true" : "false");
  Serial.print("|");
  Serial.print(counter % 50);
  Serial.print("|");
  Serial.print(sin(counter / 5.0));
  Serial.println();
  delay(50);
}
									

As you can see, there are a number of things to note:

  • Data needs to start with "{D}"
  • Data needs to be separated with a pipe: "|"
  • Headings need to correspond to the data, 3 headings, 3 columns of data please.
  • Headings start with "{H}" and are again separated with a pipe: "|"
  • Don't print out too many headings, it is not required.
  • Any straight text will show in the plain "comments" section of DarComm so you can send yourself useful debugging or error information.

That's it. Your application can provide the context for the data so when you view it in DarComm it immediately makes sense. The DarComm application also saves your last configuration of graphs etc so you don't have to each time. You can also save this file and share it with team members / clients so they can see what you see when you send them your created hardware.