A simple method of allowing an android device to read and write data reliably, to and from an external project was desired. This would then allow the multimedia capabilities of android device to be harnessed for use within the project.
To this end some of the more common potential communication protocols where considered. Eventually from these MODBUS was selected, the primary reasoning behind this was its simplicity and the abundance of on line information available outlining the protocol.
MODBUS is an Open Protocol which in simple terms means that it is free for manufactures/hobbyist to build into their products/projects.
This protocol supports digital inputs/outputs (via digital discrete coils/contacts) and Analogue inputs/outputs(via analogue holing registers) and a detailed breakdown of each of these can be found at:
Out of the available registers, coils and contacts supported by the protocol the Analogue Output holding registers where selected. From the information provided on-line it can be seen that these registers have an address range of 40001-49999 and at each address location a 16 bit register can be found.
As we have now narrowed down the protocols registers that will be used for the task, we can further simplify things by narrowing the functions utilised by the program for the reading and writing to the holding registers, these are namely:
FC03 (03 hex) Read Analogue Output Holding Registers
FC06 (06 hex) Write Single Analogue Output Holding Register
By using this as a basis an attempt will firstly be made to implement these concepts within an android application that can read and write to a limited number of preselected MODBUS Locations.