NetBurner 3.5.6
PDF Version
Message Passer

MessagePasser

A real-time messaging application that periodically sends timestamped messages to a remote server via HTTP POST requests.

Overview

MessagePasser is an embedded C++ application designed to communicate with a remote web service. The application continuously sends JSON-formatted messages containing device identification, uptime information, and timestamped messages to a specified HTTP endpoint.

Features

  • Automatic Device Identification: Uses the device's MAC address as a unique identifier
  • Real-time Communication: Sends HTTP POST requests with JSON payloads
  • Uptime Tracking: Reports system uptime with each message
  • Network Integration: Waits for active network connection (DHCP) before operation
  • Periodic Messaging: Sends messages every 10 seconds automatically
  • JSON Response Handling: Processes server responses and displays success status

Application Flow

  1. Initialization: System initialization and diagnostics enablement
  2. Network Setup: Waits up to 5 seconds for active network connection
  3. Message Loop: Continuous loop that:
    • Creates timestamped messages
    • Sends JSON data to remote server
    • Processes server responses
    • Waits 10 seconds before next iteration

Message Format

The application sends JSON messages with the following structure:

{
"DEVICEID": "AABBCCDDEEFF",
"UPTIME": 12345,
"MESSAGE": "At the tone the time will be: 12345"
}

Where:

  • DEVICEID: 12-character hexadecimal string representing the device MAC address
  • UPTIME: Current system uptime in seconds
  • MESSAGE: Timestamped message string

Server Endpoints

The application is configured to communicate with:

Implementation Details

Key Functions

  • **SendRxMessage(const char *msg)**: Modern JSON object-based message sending
  • **SendManualRxMessage(const char *msg)**: Manual JSON string formatting (alternative implementation)
  • **UserMain(void *pd)**: Main application entry point and message loop

Dependencies

The application requires several system libraries:

Network Requirements

  • Active network interface with DHCP configuration
  • Internet connectivity to reach the remote server
  • HTTP POST capability

Configuration

Timing Parameters

  • Network Wait: 5 seconds maximum for DHCP address acquisition
  • Message Interval: 10 seconds between transmissions
  • HTTP Timeout: 10 seconds for server response

Customization Options

  • Server URL can be modified by changing the Url constant
  • Message content can be customized in the UserMain function
  • Timing intervals can be adjusted by modifying the OSTimeDly parameters

Output

The application provides console output including:

  • Application startup confirmation
  • Success/failure status for each HTTP request
  • Server response messages
  • Error notifications for failed requests

Use Cases

This application is suitable for:

  • IoT device monitoring and reporting
  • Remote system status updates
  • Periodic data collection from embedded devices
  • Network connectivity testing and validation

Technical Notes

  • Built for embedded systems with real-time OS capabilities
  • Uses system ticks for timing (TICKS_PER_SECOND)
  • Implements proper JSON object building and parsing
  • Includes system diagnostics for development/debugging