Class documentation - XilefTech/CharlieOSX GitHub Wiki
Class CharlieOSX
'CharlieOSX' is the head-class of this whole project. In this class all the other methods come together and get initialized correctly.
Params:
| Param | Description | Value-Type | Standard/Recommended | 
|---|---|---|---|
| configPath | path to the config File in the project | String | 'config.cfg' | 
| settingsPath | path to the settings File on the brick | String | 'settings.json' | 
| logFilePath | path to the folder for the logs, when empty, default to logs | String | '' | 
Methods:
| Method | Description | 
|---|---|
| storeSettings | Writes the given data as a json stream to the file at given location | 
| loadSettings | returns a dict of the settings from the given path | 
| applySettings | applies the current settings to take effect | 
Class Logger
'Logger' is our custom-made Logger to log data both in the console and to a .log file for analysation of errors.
Params:
| Param | Description | Value-Type | 
|---|---|---|
| config | the parsed config | Dictionary | 
| settings | the parsed settings | Dictionary | 
| fileLocation | path to the folder for the logs, when empty, default to logs | String | 
Methods:
| Method | Description | 
|---|---|
| getFormattedTime | Returns the current time, formatted as [DD.MM.YYYY-hh:mm:ss] | 
| debug | Prints a message to both the log and the console with a [debug] tag | 
| info | see debug, but with [info] tag | 
| warn | see debug, but with [warn] tag and creates a popup on-sreen | 
| error | same as warn, but with [error] tag | 
| getScreenRefreshNeeded | returns wether or not the screen needs to be refreshed to override old text | 
| setScreenRefreshNeeded | used to set the Variable for screen refreshing | 
Class Robot
'Robot' is the class that does all the driving including interpreting number-codes.
Params:
| Param | Description | Value-Type | 
|---|---|---|
| config | the parsed config | Dictionary | 
| settings | the parsed settings | Dictionary | 
| brick | initialized EV3-Brick | EV3-Brick Class | 
| logger | initialized logger | Logger Class | 
Methods:
| Method | Description | 
|---|---|
| execute | Interprets the number codes and calls the functions below accordingly | 
| breakMotors | stops all driving-motors | 
| turn | turns the robot | 
| straight | drives a straight line whilst self-correcting with gyro-data | 
| intervall | drives back and forth in a straight line | 
| curve | drives a curve calculated by robot-move-distance and total curve angle | 
| toColor | drives straight until a (or multiple) color sensor(s) see a given color | 
| toWall | drives straight until a button-sensor is pressed | 
| action | drives the action motors or a gearing port | 
Class UI
'UI' is the class that contains all the user interface stuff for the GUI on the brick display.
Params:
| Param | Description | Value-Type | 
|---|---|---|
| config | the parsed config | Dictionary | 
| settings | the parsed settings | Dictionary | 
| brick | initialized EV3-Brick | EV3-Brick Class | 
| logger | initialized logger | Logger Class | 
| settingsPath | path to the settings File on the brick | String | 
Methods:
| Method | Description | 
|---|---|
| mainloop | method that puts all pieces of the UI together | 
| drawMenu | draws a Menu | 
| drawScrollBar | sub-method for drawing a scroll-bar on the side | 
| drawSettings | sub-method for drawing the settings sub-menu | 
| animate | sub-method to draw the transitioning animation | 
| drawDictlist | lists a Dictionary on the screen | 
| drawList | draws a List on the screen | 
| drawExtendableList | draws a List on the screen with a little + symbol at the end to extend it |