FG Int Objects Modules: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
No edit summary
m (fix: Template:FG Int Objects Modules sidebar can after the move to the template namespace be transcluded like a regular template)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Sidebar
{{FG Int Objects Modules sidebar}}
| name = GUI Navbar
| title = FG Int Objects Modules
| contentstyle = text-align: left;
| content1 = '''Modules Classes'''
* [[FG Segment Display]]
* [[FG SwitchLight]]
* [[FG Switches]]
* [[FG Rotary Encoder]]
| content9 = '''Navigation'''
* [[FG interface]]
}}
Modules in FG interface are Object Class , as like a map, to build a new object. You have learned about '''HT16K33''' and '''MCP23017''' classes, they are Modules, special Modules named in FG Interface world '''Devices'''. I made this difference to split and make the difference between switch , displays .. etc and the hardware driver chip.<br />
Modules in FG interface are Object Class , as like a map, to build a new object. You have learned about '''HT16K33''' and '''MCP23017''' classes, they are Modules, special Modules named in FG Interface world '''Devices'''. I made this difference to split and make the difference between switch , displays .. etc and the hardware driver chip.<br />
All Modules Classes are loaded into the interface, ready to be used and can be requested with the '''getModule()''' Interface Method.
All Modules Classes are loaded into the interface, ready to be used and can be requested with the '''getModule()''' Interface Method.
Line 19: Line 8:
[INT]
[INT]
intname=RADIOPANEL
intname=RADIOPANEL
deviceconf=/opt/fgint/Config/devices.cfg
deviceconf=/opt/fgint/Config/RadioPanel/devices.cfg


[MODULES]
[MODULES]
Line 25: Line 14:
module02=FGIntMCP23017,MCP23017
module02=FGIntMCP23017,MCP23017
module03=FGIntSegDisplay,SegDisplay
module03=FGIntSegDisplay,SegDisplay
module04=FGIntSwitch,Switch
module04=FGIntSwDisplay,SwitchLight
module05=FGIntSwitch,Switch
module06=FGIntSwitch,ToogleSwitch
module07=RotaryEncoder,RotaryEncoder


[AUXCONF]
[AUXCONF]
displays=/opt/fgint/Config/displays.cfg
displays=/opt/fgint/Config/RadioPanel/displays.cfg
switches=/opt/fgint/Config/switches.cfg
swlights=/opt/fgint/Config/RadioPanel/swlights.cfg
switches=/opt/fgint/Config/RadioPanel/switches.cfg
tglswitches=/opt/fgint/Config/RadioPanel/tglswitches.cfg
encoders=/opt/fgint/Config/RadioPanel/rotenc.cfg
</syntaxhighlight>
</syntaxhighlight>


In the '''MODULES''' section, you can see all modules that will be loaded.
In the '''MODULES''' section, you can see all modules that will be loaded.
Here We are loading '''HT16K33''' from module file '''FGIntHT16K33.py'''. Same thing for the '''MCP23017''' Module in the '''FGIntMCP23017.py''' and '''FGIntSegDisplay.py''' with the '''SegDisplay''' Class
Here We are loading '''HT16K33''' from module file '''FGIntHT16K33.py'''. Same thing for the '''MCP23017''' Module in the '''FGIntMCP23017.py''', '''FGIntSegDisplay.py''' with the '''SegDisplay''' Class


Some Module file can handle more than one Class, as like '''FGIntSwitch.py''' where you can find different Class for different switch types.
Some Module file can handle more than one Class, as like '''FGIntSwitch.py''' where you can find different Class for different switch types.
Line 41: Line 36:
* '''RotarySwitch''' : Use to manage a rotary switch (variable nb position)
* '''RotarySwitch''' : Use to manage a rotary switch (variable nb position)
* '''ToogleSwitch''' : Single Push button that will switch between 2 states at each push
* '''ToogleSwitch''' : Single Push button that will switch between 2 states at each push
[[Category:FG Interface]]

Latest revision as of 11:11, 12 April 2020

Modules in FG interface are Object Class , as like a map, to build a new object. You have learned about HT16K33 and MCP23017 classes, they are Modules, special Modules named in FG Interface world Devices. I made this difference to split and make the difference between switch , displays .. etc and the hardware driver chip.
All Modules Classes are loaded into the interface, ready to be used and can be requested with the getModule() Interface Method.

To be loaded, the module need to be declared. For memory, the main config file :

[INT]
intname=RADIOPANEL
deviceconf=/opt/fgint/Config/RadioPanel/devices.cfg

[MODULES]
module01=FGIntHT16K33,HT16K33
module02=FGIntMCP23017,MCP23017
module03=FGIntSegDisplay,SegDisplay
module04=FGIntSwDisplay,SwitchLight
module05=FGIntSwitch,Switch
module06=FGIntSwitch,ToogleSwitch
module07=RotaryEncoder,RotaryEncoder

[AUXCONF]
displays=/opt/fgint/Config/RadioPanel/displays.cfg
swlights=/opt/fgint/Config/RadioPanel/swlights.cfg
switches=/opt/fgint/Config/RadioPanel/switches.cfg
tglswitches=/opt/fgint/Config/RadioPanel/tglswitches.cfg
encoders=/opt/fgint/Config/RadioPanel/rotenc.cfg

In the MODULES section, you can see all modules that will be loaded. Here We are loading HT16K33 from module file FGIntHT16K33.py. Same thing for the MCP23017 Module in the FGIntMCP23017.py, FGIntSegDisplay.py with the SegDisplay Class

Some Module file can handle more than one Class, as like FGIntSwitch.py where you can find different Class for different switch types. FGIntSwitch.py own the folling classes :

  • Switch : Single switch 2 states
  • DoubleSwitch : Single switch 3 states
  • RotarySwitch : Use to manage a rotary switch (variable nb position)
  • ToogleSwitch : Single Push button that will switch between 2 states at each push