The project we want to create will be compatible with Android 4.0.3 or higher.
It thought out to allow the use of an Android app for monitoring and control of a single device via modbus/tcp on wifi network, using (for example) Modbus4j (preferred) or JAMOD.
Must be multilingual (at least 2 languages), preferably English and French.
The App must be made for at least two versions of display (at least one for a Smartphone 4", portrait mode, and one for a Tablet 7", landscape mode)
Each read or write register will be defined in "nestled in the code" (type, adress, R/W, etc) and not editable from screens.
2. Programming Environment
The app should be developed, tested and run using Android Studio (preferred) or Eclipse.
The project must be delivered in source format + compiled version ready-to-test
3. Milestones and Advance Payments
Since the presence in the WWW of various open source codes (such as Modbus-Droid http://www.bencatlin.com/sofware-projects/modbus-droid/, RemoteUnlocker https://code.google.com/p/remoteunlockerlib/, ) and the simplicity of the application, we will create a Milestone for the entire amount of the project.
This Milestone will be fully paid when the complete project is finished.
There will be not advance payment made or milestone release until all work is done.
4. Use of APP
At startup, the application performs a license check at a specific website (ip address, nested in the code, not editable) by the control system RemoteUnlocker found at "https://code.google.com/p/remoteunlockerlib/"
If the app proves not activated into RemoteUnlocker DB, you will see a screen indicating a warning like "app not properly licensed. Tell the service at "mail @ zyx . com" the following reference key: ********" (******** is obviously the serial smartphone as expected from the procedure RemoteUnlocker...)
and user can insert R.U. code in specific field for activation.
If the app proves activated into RemoteUnlocker DB, you will access to a first screen "1 - Monitor" consists of:
- Field A type discrete on/off value / Field B type 16-bit unsigned integer / Field C type 16-bit signed integer (Modbus/TCP registers address reading, read only type)
- Field D type discrete on/off value / Field E type 16-bit unsigned integer / Field F type 16-bit signed integer (Modbus/TCP registers address read/write type)
- 1 Button "INCREASE" which will increase by one unit the value (Modbus/TCP register address write type only)
- 1 Button "DECREASE" which will decrease by one unit the value (Modbus/TCP register address write type only)
- 1 Button "CONNECT" (Modbus/TCP device address & port are defined in dedicated screen "2 - settings")
- 1 button "DISCONNECT" (close connection with slave device) clicking on "CONNECT", the app will attempt to connect to the device set in screen "2 - settings"
- In case the connection is not made, a message warning like "failure to communicate with the device" blink
- In case of a positive connection:
- Will start reading and displaying the fields A/B/C at regular intervals (typically refresh of 1 second, real time)
- will be possible to use the buttons "INCREASE / DECREASE" and editing (by tapping its value) field D/E/F (each change is transferred in real time to slave device)
clicking on "DISCONNECT", the app will close the communication.
Through a first left swipe, you can access to screen "2 - settings" in which they are set:
- IP address of the slave device
- Port used
- Slave ID
- Poll time (Modbus polling is necessary in this application)
Any modification of a field is automatically saved inside APP configuration.
Through a new left swipe, you can access to screen "3 - information" describing:
- Release of the app
- Release date
- Our phone/fax/e-mail/website references for technical support
- License number (from RemoteUnlocker)
one last left swipe, once again the screen "1 - Monitor"