The purpose of this utility is to allow easy and quick external customization for your Raspberry Pi project. The main idea is to be able to control some remote application via a configuration file that can be edited remotely. Essentially, you will have your Raspberry Pi running some application that reads some settings.ini file and adding an extra definition file, RPiCustomizer will display a control panel for your application.
The application uses a combination of bash scripts (remote operations) and INI files (remote configuration).
The scanning happens in the background based on the settings specified in the application. Available remote devices will appear iconified in the browser:
The editor generates a GUI for any provided INI file by the initialization script:
Since the INI files aren't a formal standard, the main guidelines to compose one are the ones explained on: http://en.wikipedia.org/wiki/INI_file.
;comment
[module]
setting=value
;comment
Any INI file will generate a GUI, but you can use special comments to format your parameters. These rules are inspired by http://customizer.makerbot.com/docs.
;special comment for setting_1
setting_1=value_1
;comment
;special comment for setting_2
setting_2=value_2
;comment
By default, any setting will have a Textbox. The special comment provides a tooltip text and it can force other controls:
- Drop down box
- Numbers: [0, 1, 2, 3]
- Strings: [foo, bar, baz]
- Labeled values: [10:Small, 20:Medium, 30:Large]
- Numeric spinner
- Numbers only allowed, specify min/max: [0:100]
The dialog shown on the upper Configuration section can be generated by the following INI file:
[hardware]
;Just an empty section
[watcher]
;[mono,bla blah]
solver=java
;The Drop down box won't include an editable textfield if the current setting matches
;one of the values in the special comment. Text after the closing bracket will be
;considered as a tooltip on any special comment.
;[some value:Default,some value:Other option,some value for another:Another] tooltip
arguments=Default
console_ready=Enter the image
;[-10000:10000]
minimum_wait=2000
;Notice how the names of the settings is prettified automatically
service_url=http://f.cl...
;Tooltip for service_response
service_response=yes
[solver]
;Another empty section
Additionally to the configuration, the Remote menu can include customized actions.