Morsenger Processing
Morsenger was developed from the ground up as an extensible application.
Internally, Morsenger maintains 2 separate data pipelines that automatically process incoming and outgoing transmissions. Data in the pipelines travels through a series of filters that transform selected data between different formats.
- Input filters can take luminous changes from the Camera and sound from the Microphone and pump Raw Data into the Input Pipeline.
- Filters on the Input Pipeline transform the data between Ascii Text, Morse Code, Abbreviations and Bit Streams.
- Any Ascii Text received from the Input Pipeline is displayed as an incoming message once a period of silence is detected.
- Text from the Send Button is pumped to the Output Pipeline.
- Filters on the Output Pipeline transform the data between Ascii Text, Morse Code, Abbreviations and Bit Streams.
- Other filters take Bit Stream data from the Output Pipeline and produce audio, camera flashes etc.
- Additional filters tap into data flowing through the Input Pipeline to visualise incoming transmissions.
All input, output, data processing and transformation is handled as background tasks which operate concurrently. This means that you can send and receive via all 4 interfaces at the same time and even at different rates.
Morsenger decodes Morse Code from Raw Data and Bit Stream data using a dichotomic search algorithm. If it can't decode a sequence of Dots and Dashes, it reports a "?" character.
You can watch Morsenger decoding morse by dragging upwards on the tab that sits above the text entry area. This will reveal the Status Area.