diff options
author | Michele Di Maria <michele@nt2.it> | 2012-01-05 21:02:05 +0100 |
---|---|---|
committer | Michele Di Maria <michele@nt2.it> | 2012-01-05 21:02:05 +0100 |
commit | f3975a977bc50b3040193db7eb9277924dd3326a (patch) | |
tree | c49dd3cb8543a40a1f5af9d43c40c5fc9c78a5bf | |
parent | cf24c3a3ee334f903be88cde1c771e7c3012d77b (diff) | |
download | pfsense-packages-f3975a977bc50b3040193db7eb9277924dd3326a.tar.gz pfsense-packages-f3975a977bc50b3040193db7eb9277924dd3326a.tar.bz2 pfsense-packages-f3975a977bc50b3040193db7eb9277924dd3326a.zip |
Many improvements/tweaks.
- Added in the com port selection: com1 (dev/cua0), com1 and com2 alternative (dev/cuau0 and dev/cuau1)
- Added com port speed selection (hope users won't make a mess)
- Added Contrast/Brightness/Offbrightness selection. If the setting from the user do not match the possibility of the driver the setting is just ignored.
-rw-r--r-- | config/lcdproc-dev/lcdproc.inc | 160 | ||||
-rw-r--r-- | config/lcdproc-dev/lcdproc.xml | 224 | ||||
-rw-r--r-- | config/lcdproc-dev/lcdproc_screens.xml | 2 |
3 files changed, 334 insertions, 52 deletions
diff --git a/config/lcdproc-dev/lcdproc.inc b/config/lcdproc-dev/lcdproc.inc index 5733b7aa..cf2e6e12 100644 --- a/config/lcdproc-dev/lcdproc.inc +++ b/config/lcdproc-dev/lcdproc.inc @@ -74,9 +74,18 @@ case "none": continue; break; + case "com1": + continue; + break; case "com2": continue; break; + case "com1a": + continue; + break; + case "com2a": + continue; + break; case "ucom1": continue; break; @@ -137,6 +146,34 @@ break; } } + if($post['port_speed']) { + switch($post['port_speed']) { + case "0": + continue; + break; + case "1200": + continue; + break; + case "2400": + continue; + break; + case "9600": + continue; + break; + case "19200": + continue; + break; + case "57600": + continue; + break; + case "115200": + continue; + break; + default: + $input_errors[] = "The chosen port speed is not valid"; + break; + } + } } function validate_form_lcdproc_screens($post, $input_errors) { // No validation required ?! @@ -155,9 +192,18 @@ /* since config is written before this file invoked we don't need to read post data */ if($lcdproc_config['enable'] && ($lcdproc_config['comport'] != "none")) { switch($lcdproc_config['comport']) { + case "com1": + $realport = "/dev/cua0"; + break; case "com2": $realport = "/dev/cua1"; break; + case "com1a": + $realport = "/dev/cuau0"; + break; + case "com2a": + $realport = "/dev/cuau1"; + break; case "ucom1": $realport = "/dev/cuaU0"; break; @@ -211,16 +257,14 @@ case "bayrad": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; - $config_text .= "Speed=9600\n"; break; case "CFontz": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; - $config_text .= "Contrast=350\n"; - $config_text .= "Brightness=1000\n"; - $config_text .= "OffBrightness=50\n"; - $config_text .= "Speed=9600\n"; + $config_text .= set_lcd_value("contrast", 1000, 350); + $config_text .= set_lcd_value("brightness", 1000, 1000); + $config_text .= set_lcd_value("offbrightness", 1000, 50); $config_text .= "NewFirmware=no\n"; $config_text .= "Reboot=no\n"; break; @@ -228,10 +272,9 @@ $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; - $config_text .= "Contrast=350\n"; - $config_text .= "Brightness=1000\n"; - $config_text .= "OffBrightness=50\n"; - $config_text .= "Speed=19200\n"; + $config_text .= set_lcd_value("contrast", 1000, 350); + $config_text .= set_lcd_value("brightness", 1000, 1000); + $config_text .= set_lcd_value("offbrightness", 1000, 50); $config_text .= "NewFirmware=yes\n"; $config_text .= "Reboot=yes\n"; break; @@ -240,10 +283,9 @@ $config_text .= "Device={$realport}\n"; $config_text .= "Model=635\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; - $config_text .= "Contrast=350\n"; - $config_text .= "Brightness=1000\n"; - $config_text .= "OffBrightness=50\n"; - $config_text .= "Speed=115200\n"; + $config_text .= set_lcd_value("contrast", 1000, 350); + $config_text .= set_lcd_value("brightness", 1000, 1000); + $config_text .= set_lcd_value("offbrightness", 1000, 50); $config_text .= "NewFirmware=yes\n"; $config_text .= "Reboot=yes\n"; break; @@ -262,26 +304,23 @@ $config_text .= "Model=12232\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; - $config_text .= "Speed=19200\n"; $config_text .= "Reboot=no\n"; break; case "ea65": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; $config_text .= "OffBrightness=0\n"; - $config_text .= "Brightness=500\n"; + $config_text .= set_lcd_value("brightness", 1000, 500); break; case "EyeboxOne": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Backlight=yes\n"; - $config_text .= "Speed=19200\n"; break; case "glk": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; - $config_text .= "Contrast=560\n"; - $config_text .= "Speed=19200\n"; + $config_text .= set_lcd_value("contrast", 1000, 350); break; case "hd44780": $config_text .= "[{$lcdproc_config['driver']}]\n"; @@ -289,9 +328,9 @@ $config_text .= "ConnectionType=lcd2usb\n"; $config_text .= "Speed=0\n"; $config_text .= "Keypad=no\n"; - $config_text .= "Contrast=850\n"; - $config_text .= "Brightness=800\n"; - $config_text .= "OffBrightness=0\n"; + $config_text .= set_lcd_value("contrast", 1000, 850); + $config_text .= set_lcd_value("brightness", 1000, 800); + $config_text .= set_lcd_value("offbrightness", 1000, 0); $config_text .= "Backlight=yes\n"; $config_text .= "OutputPort=no\n"; $config_text .= "Charmap=hd44780_default\n"; @@ -302,12 +341,11 @@ case "hd44780 fast": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "ConnectionType=lcd2usb\n"; - $config_text .= "Speed=19200\n"; $config_text .= "Charmap=hd44780_default\n"; $config_text .= "Keypad=yes\n"; - $config_text .= "Contrast=850\n"; - $config_text .= "Brightness=800\n"; - $config_text .= "OffBrightness=0\n"; + $config_text .= set_lcd_value("contrast", 1000, 850); + $config_text .= set_lcd_value("brightness", 1000, 800); + $config_text .= set_lcd_value("offbrightness", 1000, 0); $config_text .= "Backlight=yes\n"; $config_text .= "OutputPort=no\n"; $config_text .= "DelayMult=1\n"; @@ -325,8 +363,7 @@ case "lb216": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; - $config_text .= "Brightness=255\n"; - $config_text .= "Speed=9600\n"; + $config_text .= set_lcd_value("brightness", 255, 255); $config_text .= "Reboot=no\n"; break; case "lcdm001": @@ -342,32 +379,30 @@ $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; - $config_text .= "Brightness=1000\n"; - $config_text .= "OffBrightness=0\n"; + $config_text .= set_lcd_value("brightness", 1000, 1000); + $config_text .= set_lcd_value("offbrightness", 1000, 0); break; case "ms6931": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; - $config_text .= "Brightness=255\n"; $config_text .= "Reboot=no\n"; break; case "mtc_s16209x": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; - $config_text .= "Brightness=255\n"; + $config_text .= set_lcd_value("brightness", 255, 255); $config_text .= "Reboot=no\n"; break; case "MtxOrb": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; - $config_text .= "Contrast=480\n"; $config_text .= "Type=lcd\n"; $config_text .= "hasAdjustableBacklight=yes\n"; $config_text .= "Reboot=no\n"; - $config_text .= "Brightness=1000\n"; - $config_text .= "OffBrightness=0\n"; - $config_text .= "Speed=19200\n"; + $config_text .= set_lcd_value("contrast", 1000, 480); + $config_text .= set_lcd_value("brightness", 1000, 1000); + $config_text .= set_lcd_value("offbrightness", 1000, 0); break; case "nexcom": $config_text .= "[{$lcdproc_config['driver']}]\n"; @@ -379,9 +414,8 @@ $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; - $config_text .= "Brightness=1000\n"; - $config_text .= "OffBrightness=0\n"; - $config_text .= "Speed=9600\n"; + $config_text .= set_lcd_value("brightness", 1000, 1000); + $config_text .= set_lcd_value("offbrightness", 1000, 0); $config_text .= "Parity=0\n"; $config_text .= "Reboot=no\n"; break; @@ -391,9 +425,10 @@ $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; $config_text .= "KeyTimeout=500\n"; - $config_text .= "Brightness=1000\n"; + $config_text .= set_lcd_value("contrast", 1000, 1000); + $config_text .= set_lcd_value("brightness", 1000, 1000); + $config_text .= set_lcd_value("offbrightness", 1000, 0); $config_text .= "Blacklight_Timer=60\n"; - $config_text .= "Contrast=1000\n"; $config_text .= "Keylights=on\n"; $config_text .= "Key0Light=on\n"; $config_text .= "Key1Light=off\n"; @@ -418,7 +453,6 @@ $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; $config_text .= "Type=AEDEX\n"; - $config_text .= "Speed=9600\n"; break; case "serialVFD": $config_text .= "[{$lcdproc_config['driver']}]\n"; @@ -426,9 +460,8 @@ $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; $config_text .= "Type=0\n"; //Just the first - $config_text .= "Brightness=1000\n"; - $config_text .= "OffBrightness=0\n"; - $config_text .= "Speed=9600\n"; + $config_text .= set_lcd_value("brightness", 1000, 1000); + $config_text .= set_lcd_value("offbrightness", 1000, 0); $config_text .= "ISO_8859_1=yes\n"; break; case "shuttleVFD": @@ -439,20 +472,23 @@ $config_text .= "driverpath =/usr/local/lib/lcdproc/\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; - $config_text .= "Edition=2\n"; - $config_text .= "Contrast=200\n"; - $config_text .= "Brightness=480\n"; - $config_text .= "Speed=19200\n"; + $config_text .= "Edition=2\n"; + $config_text .= set_lcd_value("contrast", 1000, 200); + $config_text .= set_lcd_value("brightness", 1000, 480); break; case "sli": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "Device={$realport}\n"; - $config_text .= "Speed=9600\n"; break; default: lcdproc_warn("The chosen lcdproc driver is not a valid choice"); unset($lcdproc_config[driver]); } + /* Port speed */ + if ($lcdproc_config[port_speed] <> '' && $lcdproc_config[port_speed] <> '0') { + $port_speed = $lcdproc_config[port_speed]; + $config_text .= "Speed={$port_speed}\n"; + } /* generate rc file start and stop */ $client_script = <<<EOD #!/bin/sh @@ -515,4 +551,30 @@ EOD; config_unlock(); lcdproc_notice("Sync: End package sync"); } + function set_lcd_value($fieldname, $max, $default_value) { + global $config; + $lcdproc_config = $config['installedpackages']['lcdproc']['config'][0]; + $value = $lcdproc_config[$fieldname]; + $returnvalue = ""; + if ($value != '' && $value != '-1') { + $realvalue = (int)($max * $value / 100); + } + else + { + $realvalue = $default_value; + } + switch ($fieldname) + { + case "brightness": + $returnvalue = "Brightness={$realvalue}\n"; + break; + case "offbrightness": + $returnvalue = "OffBrightness={$realvalue}\n"; + break; + case "contrast": + $returnvalue = "Contrast={$realvalue}\n"; + break; + } + return $returnvalue; + } ?>
\ No newline at end of file diff --git a/config/lcdproc-dev/lcdproc.xml b/config/lcdproc-dev/lcdproc.xml index 826ee86f..d31c9a6d 100644 --- a/config/lcdproc-dev/lcdproc.xml +++ b/config/lcdproc-dev/lcdproc.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" ?> <packagegui> - <title>Services: LCDproc 0.5.4 pkg v. 0.4</title> + <title>Services: LCDproc 0.5.4 pkg v. 0.5</title> <name>lcdproc</name> - <version>0.5.4 pkg v. 0.4</version> + <version>0.5.4 pkg v. 0.5</version> <savetext>Save</savetext> <include_file>/usr/local/pkg/lcdproc.inc</include_file> <tabs> @@ -65,10 +65,22 @@ <name>none</name> </option> <option> + <value>com1</value> + <name>Serial Com port 1 (/dev/cua0)</name> + </option> + <option> <value>com2</value> <name>Serial Com port 2 (/dev/cua1)</name> </option> <option> + <value>com1a</value> + <name>Serial Com port 1 alternate (/dev/cuau0)</name> + </option> + <option> + <value>com2a</value> + <name>Serial Com port 2 alternate (/dev/cuau1)</name> + </option> + <option> <value>ucom1</value> <name>USB Com port 1 (/dev/cuaU0)</name> </option> @@ -317,6 +329,214 @@ </option> </options> <default_value>5</default_value> + </field> + <field> + <fieldname>port_speed</fieldname> + <fielddescr>Port speed</fielddescr> + <description>Set the port speed. Caution: not all the driver or panels support all the speeds, leave "default" if unsure.</description> + <type>select</type> + <options> + <option> + <value>0</value> + <name>Default</name> + </option> + <option> + <value>1200</value> + <name>1200 bps</name> + </option> + <option> + <value>2400</value> + <name>2400 bps</name> + </option> + <option> + <value>9600</value> + <name>9600 bps</name> + </option> + <option> + <value>19200</value> + <name>19200 bps</name> + </option> + <option> + <value>57600</value> + <name>57600 bps</name> + </option> + <option> + <value>115200</value> + <name>115200 bps</name> + </option> + </options> + <default_value>0</default_value> + </field> + <field> + <fieldname>brightness</fieldname> + <fielddescr>Brightness</fielddescr> + <description>Set the brightness of the LCD panel. This option is not supported by all the LCD panels, leave "default" if unsure.</description> + <type>select</type> + <options> + <option> + <value>-1</value> + <name>Default</name> + </option> + <option> + <value>0</value> + <name>0%</name> + </option> + <option> + <value>10</value> + <name>10%</name> + </option> + <option> + <value>20</value> + <name>20%</name> + </option> + <option> + <value>30</value> + <name>30%</name> + </option> + <option> + <value>40</value> + <name>40%</name> + </option> + <option> + <value>50</value> + <name>50%</name> + </option> + <option> + <value>60</value> + <name>60%</name> + </option> + <option> + <value>70</value> + <name>70%</name> + </option> + <option> + <value>80</value> + <name>80%</name> + </option> + <option> + <value>90</value> + <name>90%</name> + </option> + <option> + <value>100</value> + <name>100%</name> + </option> + </options> + <default_value>-1</default_value> + </field> + <field> + <fieldname>offbrightness</fieldname> + <fielddescr>Offrightness</fielddescr> + <description>Set the off-brightness of the LCD panel. This value is used when the display is normally switched off in case LCDd is inactive. This option is not supported by all the LCD panels, leave "default" if unsure.</description> + <type>select</type> + <options> + <option> + <value>-1</value> + <name>Default</name> + </option> + <option> + <value>0</value> + <name>0%</name> + </option> + <option> + <value>10</value> + <name>10%</name> + </option> + <option> + <value>20</value> + <name>20%</name> + </option> + <option> + <value>30</value> + <name>30%</name> + </option> + <option> + <value>40</value> + <name>40%</name> + </option> + <option> + <value>50</value> + <name>50%</name> + </option> + <option> + <value>60</value> + <name>60%</name> + </option> + <option> + <value>70</value> + <name>70%</name> + </option> + <option> + <value>80</value> + <name>80%</name> + </option> + <option> + <value>90</value> + <name>90%</name> + </option> + <option> + <value>100</value> + <name>100%</name> + </option> + </options> + <default_value>-1</default_value> + </field> + <field> + <fieldname>contrast</fieldname> + <fielddescr>Contrast</fielddescr> + <description>Set the contrast of the LCD panel. This option is not supported by all the LCD panels, leave "default" if unsure.</description> + <type>select</type> + <options> + <option> + <value>-1</value> + <name>Default</name> + </option> + <option> + <value>0</value> + <name>0%</name> + </option> + <option> + <value>10</value> + <name>10%</name> + </option> + <option> + <value>20</value> + <name>20%</name> + </option> + <option> + <value>30</value> + <name>30%</name> + </option> + <option> + <value>40</value> + <name>40%</name> + </option> + <option> + <value>50</value> + <name>50%</name> + </option> + <option> + <value>60</value> + <name>60%</name> + </option> + <option> + <value>70</value> + <name>70%</name> + </option> + <option> + <value>80</value> + <name>80%</name> + </option> + <option> + <value>90</value> + <name>90%</name> + </option> + <option> + <value>100</value> + <name>100%</name> + </option> + </options> + <default_value>-1</default_value> </field> </fields> <custom_php_command_before_form> diff --git a/config/lcdproc-dev/lcdproc_screens.xml b/config/lcdproc-dev/lcdproc_screens.xml index 7dee9a9f..1d2318fd 100644 --- a/config/lcdproc-dev/lcdproc_screens.xml +++ b/config/lcdproc-dev/lcdproc_screens.xml @@ -2,7 +2,7 @@ <packagegui> <title>Services: LCDproc: Screens</title> <name>lcdproc_screens</name> - <version>0.5.4 pkg v. 0.4</version> + <version>0.5.4 pkg v. 0.5</version> <savetext>Save</savetext> <include_file>/usr/local/pkg/lcdproc.inc</include_file> <tabs> |