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 |