Morse Micro IoT SDK  2.9.7
MMAGIC: CLI and Machine-to-Machine interface infrastructure

Detailed Description

Overview

MMAGIC is infrastructure for creating binary and command line interface (CLI) APIs for either Machine-to-Machine (M2M) or user interactive operation of a device. The CLI and M2M interfaces provide the same core functionality.

The goal of the CLI is to provide a user friendly command line interface with an appropriately designed command set for interactive use. It is intended to be user friendly with tab completion of commands, command history, and a help menu.

The M2M interface is designed to be powerful and efficient with a fully-featured command set and an efficient communications protocol. It is designed to support multiple transports (e.g., UART and SPI).

Machine-to-Machine (M2M) Interface

The M2M interface supports a three chip solution, as shown in the diagram below. The Controller is where application-specific code runs and it communicates with the Agent via the M2M interface (e.g., over SPI or UART). The Agent communicates with the Morse transceiver and implements the WLAN drivers and UMAC as well as the network stack. It presents a control API to the Controller via the M2M interface.

On the Agent side, the software stack is built using the MM-IoT-SDK. On the Controller side, there is no dependency on the MM-IoT-SDK, but some sample code has been provided to simplify implementation of the Controller. For more details see the example applications below, as well as the Morse M2M Agent and Morse M2M Interface Controller API.

Machine-to-Machine (M2M) interface for three chip solution

Examples

Three example applications are provided for MMAGIC:

Modules

 Morse M2M Protocol
 This section describes the binary protocol used by the Machine-to-Machine Interface (M2M) for communication between an Agent and a Controller.
 
 Morse M2M Agent/CLI Common API
 This API is common use by both the MMAGIC M2M Agent and CLI.
 
 Morse Command Line Interface (CLI)
 
 Morse M2M Agent
 
 Morse M2M Interface Controller API
 This module provides a small implementation of the Controller stack for integration with application software.