Changes between Version 3 and Version 4 of SamsungSPF


Ignore:
Timestamp:
02/02/17 15:37:27 (2 years ago)
Author:
anonymous
Comment:

Reverted to version 1.

Legend:

Unmodified
Added
Removed
Modified
  • SamsungSPF

    v3 v4  
    1 Display dpf {
    2         Driver     'DPF'
    3         Port       'usb0'
    4         Font       '6x8'
    5         Foreground 'ffffff'
    6         Background 'ffffff00'
    7         Basecolor  '000000'   #ffffff00
    8         Orientation 0          # Orientation value from 0-3
    9         Backlight 3   # Backlight variable control, 0..7 (0=off, 7=max)
     1== Display Section ==
     2
     3{{{
     4Display <name> {
     5    Driver       'SamsungSPF'
     6    Model        '<string>'
     7    Font         '<string>'
     8    Update       '<int>'
    109}
     10}}}
    1111
    12 Display Image {
    13         Driver     'Image'
    14         Format     'PNG'
    15         Size       '320x240'
    16         Font       '6x8'
    17         Pixel      '4+1'
    18         Gap        '-1x-1'
    19         Border      20
    20         Foreground 'ffffff'
    21         Background 'ffffff00'
    22         Halfground '#70c000'
     12----
     13
     14== Parameters ==
     15
     16||Driver||'SamsungSPF'||
     17||Port||one in [spf-75h, spf-85h, spf-107h]||
     18||Font||Normally: '6x8'; With scaletext patch are bigger fonts available.||
     19||Update||Display update interval im ms||
     20
     21----
     22
     23== Examples ==
     24
     25{{{
     26Display SamsungSPF {
     27    Driver     'SamsungSPF'
     28    Model      'spf-75h'
     29    Font       '12x16'
     30    Update     500
    2331}
     32}}}
    2433
    25 Widget Bgnd {
    26         class 'Image'
    27         file imgadir . 'bakground.png'
    28         reload 1
    29         update minute
    30         inverted 0
    31         visible 1
    32        
    33 }
     34----
    3435
    35 Widget Year1 {
    36         class 'Image'
    37         file imgadir . 'datenumber'. substr(strftime('%Y', time()),0,1) . '.png'
    38         reload 1
    39         update tick
    40         inverted 0
    41         visible 1
    42 }
     36== Requierments ==
    4337
    44 Widget Year2 {
    45         class 'Image'
    46         file imgadir . 'datenumber'. substr(strftime('%Y', time()),1,1) . '.png'
    47         reload 1
    48         update tick
    49         inverted 0
    50         visible 1
    51 }
    52 
    53 Widget Year3 {
    54         class 'Image'
    55         file imgadir . 'datenumber'. substr(strftime('%Y', time()),2,1) . '.png'
    56         reload 1
    57         update tick
    58         inverted 0
    59         visible 1
    60 }
    61 
    62 Widget Year4 {
    63         class 'Image'
    64         file imgadir . 'datenumber'. substr(strftime('%Y', time()),3,1) . '.png'
    65         reload 1
    66         update tick
    67         inverted 0
    68         visible 1
    69 }
    70 
    71 Widget Month1 {
    72         class 'Image'
    73         file imgadir . 'datenumber'. substr(strftime('%m', time()),0,1) . '.png'
    74         reload 1
    75         update tick
    76         inverted 0
    77         visible 1
    78 }
    79 
    80 Widget Month2 {
    81         class 'Image'
    82         file imgadir . 'datenumber'. substr(strftime('%m', time()),1,1) . '.png'
    83         reload 1
    84         update tick
    85         inverted 0
    86         visible 1
    87 }
    88 
    89 Widget Day1 {
    90         class 'Image'
    91         file imgadir . 'datenumber'. substr(strftime('%d', time()),0,1) . '.png'
    92         reload 1
    93         update tick
    94         inverted 0
    95         visible 1
    96 }
    97 
    98 Widget Day2 {
    99         class 'Image'
    100         file imgadir . 'datenumber'. substr(strftime('%d', time()),1,1) . '.png'
    101         reload 1
    102         update tick
    103         inverted 0
    104         visible 1
    105 }
    106 
    107 Widget Week1 {
    108         class 'Image'
    109         file imgadir . 'weeknumber'. strftime('%u', time()) . '.png'
    110         reload 1
    111         update tick
    112         inverted 0
    113         visible 1
    114 }
    115 
    116 Widget Hour1 {
    117         class 'Image'
    118         file imgadir . 'timenumber'. substr(strftime('%H', time()),0,1) . '.png'
    119         reload 1
    120         update tick
    121         inverted 0
    122         visible 1
    123 }
    124 
    125 Widget Hour2 {
    126         class 'Image'
    127         file imgadir . 'timenumber'. substr(strftime('%H', time()),1,1) . '.png'
    128         reload 1
    129         update tick
    130         inverted 0
    131         visible 1
    132 }
    133 
    134 Widget Minute1 {
    135         class 'Image'
    136         file imgadir . 'timenumber'. substr(strftime('%M', time()),0,1) . '.png'
    137         reload 1
    138         update tick
    139         inverted 0
    140         visible 1
    141 }
    142 
    143 Widget Minute2 {
    144         class 'Image'
    145         file imgadir . 'timenumber'. substr(strftime('%M', time()),1,1) . '.png'
    146         reload 1
    147         update tick
    148         inverted 0
    149         visible 1
    150 }
    151 
    152 Widget Second1 {
    153         class 'Image'
    154         file imgadir . 'secnumber'. substr(strftime('%S', time()),0,1) . '.png'
    155         reload 1
    156         update tick
    157         inverted 0
    158         visible 1
    159 }
    160 
    161 Widget Second2 {
    162         class 'Image'
    163         file imgadir . 'secnumber'. substr(strftime('%S', time()),1,1) . '.png'
    164         reload 1
    165         update tick
    166         inverted 0
    167         visible 1
    168 }
    169 
    170 Widget Weather1 {
    171         class 'Image'
    172         file imgadir . 'wbicons/'. file::readline(datadir . 'weather', 2) . DorN . '.png'
    173         reload 1
    174         update minute
    175         inverted 0
    176         visible 1
    177 }
    178 
    179 Widget Weather2 {
    180         class 'Image'
    181         file imgadir . 'wsicons/'. file::readline(datadir . 'weather', 6) . 'd.png'
    182         reload 1
    183         update minute
    184         inverted 0
    185         visible 1
    186 }
    187 
    188 Widget WeatherT {
    189         class 'Image'
    190         file imgadir . 'tomorrow.png'
    191         reload 1
    192         update minute
    193         inverted 0
    194         visible 1
    195 }
    196 
    197 Widget WeaTmplA01 {
    198         class 'Image'
    199         file imgadir . 'tmpnumber'. substr(file::readline(datadir . 'weather', 3), 0, 1) . '.png'
    200         reload 1
    201         update minute
    202         inverted 0
    203         visible 1
    204 }
    205 
    206 Widget WeaTmplA02 {
    207         class 'Image'
    208         file imgadir . 'tmpnumber'. substr(file::readline(datadir . 'weather', 3), 1, 1) . '.png'
    209         reload 1
    210         update minute
    211         inverted 0
    212         visible 1
    213 }
    214 
    215 Widget WeaTmplA03 {
    216         class 'Image'
    217         file imgadir . 'tmpnumber'. substr(file::readline(datadir . 'weather', 3), 2, 1) . '.png'
    218         reload 1
    219         update minute
    220         inverted 0
    221         visible 1
    222 }
    223 
    224 Widget WeaTmplA04 {
    225         class 'Image'
    226         file imgadir . 'tmpnumber'. substr(file::readline(datadir . 'weather', 3), 3, 1) . '.png'
    227         reload 1
    228         update minute
    229         inverted 0
    230         visible 1
    231 }
    232 
    233 Widget WeaTmplB01 {
    234         class 'Image'
    235         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 0, 1) . '.png'
    236         reload 1
    237         update minute
    238         inverted 0
    239         visible 1
    240 }
    241 
    242 Widget WeaTmplB02 {
    243         class 'Image'
    244         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 1, 1) . '.png'
    245         reload 1
    246         update minute
    247         inverted 0
    248         visible 1
    249 }
    250 
    251 Widget WeaTmplB03 {
    252         class 'Image'
    253         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 2, 1) . '.png'
    254         reload 1
    255         update minute
    256         inverted 0
    257         visible 1
    258 }
    259 
    260 Widget WeaTmplB04 {
    261         class 'Image'
    262         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 3, 1) . '.png'
    263         reload 1
    264         update minute
    265         inverted 0
    266         visible 1
    267 }
    268 
    269 Widget WeaTmplB05 {
    270         class 'Image'
    271         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 4, 1) . '.png'
    272         reload 1
    273         update minute
    274         inverted 0
    275         visible 1
    276 }
    277 
    278 Widget WeaTmplB06 {
    279         class 'Image'
    280         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 5, 1) . '.png'
    281         reload 1
    282         update minute
    283         inverted 0
    284         visible 1
    285 }
    286 
    287 Widget WeaTmplB07 {
    288         class 'Image'
    289         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 6, 1) . '.png'
    290         reload 1
    291         update minute
    292         inverted 0
    293         visible 1
    294 }
    295 
    296 Widget WeaTmplB08 {
    297         class 'Image'
    298         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 7, 1) . '.png'
    299         reload 1
    300         update minute
    301         inverted 0
    302         visible 1
    303 }
    304 
    305 Widget WeaTmplB09 {
    306         class 'Image'
    307         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 8, 1) . '.png'
    308         reload 1
    309         update minute
    310         inverted 0
    311         visible 1
    312 }
    313 
    314 Widget WeaTmplB10 {
    315         class 'Image'
    316         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'weather', 5), 9, 1) . '.png'
    317         reload 1
    318         update minute
    319         inverted 0
    320         visible 1
    321 }
    322 
    323 Widget WeaTmplC01 {
    324         class 'Image'
    325         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 0, 1) . '.png'
    326         reload 1
    327         update minute
    328         inverted 0
    329         visible 1
    330 }
    331 
    332 Widget WeaTmplC02 {
    333         class 'Image'
    334         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 1, 1) . '.png'
    335         reload 1
    336         update minute
    337         inverted 0
    338         visible 1
    339 }
    340 
    341 Widget WeaTmplC03 {
    342         class 'Image'
    343         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 2, 1) . '.png'
    344         reload 1
    345         update minute
    346         inverted 0
    347         visible 1
    348 }
    349 
    350 Widget WeaTmplC04 {
    351         class 'Image'
    352         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 3, 1) . '.png'
    353         reload 1
    354         update minute
    355         inverted 0
    356         visible 1
    357 }
    358 
    359 Widget WeaTmplC05 {
    360         class 'Image'
    361         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 4, 1) . '.png'
    362         reload 1
    363         update minute
    364         inverted 0
    365         visible 1
    366 }
    367 
    368 Widget WeaTmplC06 {
    369         class 'Image'
    370         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 5, 1) . '.png'
    371         reload 1
    372         update minute
    373         inverted 0
    374         visible 1
    375 }
    376 
    377 Widget WeaTmplC07 {
    378         class 'Image'
    379         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 6, 1) . '.png'
    380         reload 1
    381         update minute
    382         inverted 0
    383         visible 1
    384 }
    385 
    386 Widget WeaTmplC08 {
    387         class 'Image'
    388         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 7, 1) . '.png'
    389         reload 1
    390         update minute
    391         inverted 0
    392         visible 1
    393 }
    394 
    395 Widget WeaTmplC09 {
    396         class 'Image'
    397         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 8, 1) . '.png'
    398         reload 1
    399         update minute
    400         inverted 0
    401         visible 1
    402 }
    403 
    404 Widget WeaTmplC10 {
    405         class 'Image'
    406         file imgadir . 'small'. substr(file::readline(datadir . 'weather', 7), 9, 1) . '.png'
    407         reload 1
    408         update minute
    409         inverted 0
    410         visible 1
    411 }
    412 
    413 Widget WeaInformation1 {
    414         class  'Text'
    415         expression  file::readline(datadir . 'weather', 8)
    416         prefix 'Wind'
    417         width  32
    418 #       speed tick
    419         align  'R'
    420         update tick
    421         Background 'FFFFFF00'
    422 }
    423 
    424 Widget WeaInformation2 {
    425         class  'Text'
    426         expression  file::readline(datadir . 'weather', 9)
    427         prefix 'Atmos..:'
    428         width  32
    429 #       speed tick
    430         align  'R'
    431         update tick
    432         Background 'FFFFFF00'
    433 }
    434 
    435 Widget WeaInformation3 {
    436         class  'Text'
    437         expression  file::readline(datadir . 'weather', 10)
    438         width  32
    439         prefix 'Astr..:'
    440 #       speed tick
    441         align  'R'
    442         update tick
    443         Background 'FFFFFF00'
    444 }
    445 
    446 
    447 Widget PMInfoLevel {
    448         class 'Image'
    449         file imgadir . 'airlevel'. file::readline(datadir . 'aqi', 3) . '.png'
    450         reload 1
    451         update minute
    452         inverted 0
    453         visible 1
    454 }
    455 
    456 Widget PMInfoMain {
    457         class 'Image'
    458         file imgadir . 'aqi'. file::readline(datadir . 'aqi', 1) . '.png'
    459         reload 1
    460         update minute
    461         inverted 0
    462         visible 1
    463 }
    464 
    465 Widget PMDetail1 {
    466         class 'Image'
    467         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'aqi', 2), 0, 1) . '.png'
    468         reload 1
    469         update minute
    470         inverted 0
    471         visible 1
    472 }
    473 
    474 Widget PMDetail2 {
    475         class 'Image'
    476         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'aqi', 2), 1, 1) . '.png'
    477         reload 1
    478         update minute
    479         inverted 0
    480         visible 1
    481 }
    482 
    483 Widget PMDetail3 {
    484         class 'Image'
    485         file imgadir . 'tmpnums'. substr(file::readline(datadir . 'aqi', 2), 2, 1) . '.png'
    486         reload 1
    487         update minute
    488         inverted 0
    489         visible 1
    490 }
    491 
    492 Widget Kernel1 {
    493         class  'Text'
    494         expression uname('sysname')
    495         width  13
    496         align  'R'
    497         update minute
    498         Background 'FFFFFF00'
    499 }
    500 
    501 Widget Kernel2 {
    502         class  'Text'
    503         expression uname('release')
    504         width  13
    505         align  'R'
    506         update minute
    507         Background 'FFFFFF00'
    508 }
    509 
    510 Widget CPUText {
    511         class  'Text'
    512         expression uname('machine')
    513         prefix 'CPU'
    514         width  13
    515         align  'R'
    516         update minute
    517         Background 'FFFFFF00'
    518 }
    519 
    520 Widget CPUBar {
    521         class 'Bar'
    522         expression  proc_stat::cpu('busy',   500)
    523         length 13
    524         direction 'E'
    525 #       style 'H'
    526         update tack
    527         Foreground '5f5f5f'
    528         Background '00FF00FF'
    529         BarColor0 'FF0000'
    530         BarColor1 'EE3333'
    531 }
    532 
    533 Widget RAMText1 {
    534         class  'Text'
    535         expression meminfo('MemTotal')/1024
    536         prefix 'RAM'
    537         postfix 'MB'
    538         precision  0
    539         width  13
    540         align  'R'
    541         update tick
    542         Background 'FFFFFF00'
    543 }
    544 
    545 Widget RAMText2 {
    546         class  'Text'
    547         expression meminfo('MemFree')/1024
    548         prefix 'Free'
    549         postfix 'MB'
    550         precision  0
    551         width  13
    552         align  'R'
    553         update tick
    554         Background 'FFFFFF00'
    555 }
    556 
    557 Widget RAMBar {
    558         class 'Bar'
    559         expression  meminfo('MemTotal') - meminfo('MemFree')
    560         max meminfo('MemTotal')
    561         length 13
    562         direction 'E'
    563 #       style 'H'
    564         update tack
    565         Foreground '5f5f5f'
    566         Background '00FF00FF'
    567         BarColor0 'FF0000'
    568         BarColor1 'EE3333'
    569 }
    570 
    571 Widget LoadText {
    572         class  'Text'
    573         expression loadavg(1)
    574         prefix 'Load:'
    575         postfix loadavg(1)>1.0?'!':''
    576         width  13
    577         align  'R'
    578         precision  1
    579         update tack
    580         Background 'FFFFFF00'
    581 }
    582 
    583 Widget LoadBar {
    584         class 'Bar'
    585         expression  loadavg(1)
    586         max 2.0
    587         length 13
    588         direction 'E'
    589 #       style 'H'
    590         update tack
    591         Foreground '5f5f5f'
    592         Background '00FF00FF'
    593         BarColor0 'FF0000'
    594         BarColor1 'EE3333'
    595 }
    596 
    597 Widget DiskText1 {
    598         class 'Text'
    599         expression diskstats('sda', 'read_sectors', 500)/2
    600         prefix 'Read:'
    601         postfix 'K'
    602         precision  0
    603         width 13
    604         align 'R'
    605         update tick
    606         Foreground 'ffffff'
    607         Background 'FFFFFF00'
    608 }
    609 
    610 Widget DiskText2 {
    611         class 'Text'
    612         expression diskstats('sda', 'write_sectors', 500)/2
    613         prefix 'Write:'
    614         postfix 'K'
    615         precision  0
    616         width 13
    617         align 'R'
    618         update tick
    619         Foreground 'ffffff'
    620         Background 'FFFFFF00'
    621 }
    622 
    623 Widget DiskBar {
    624         class 'Bar'
    625         expression  diskstats('sda', 'read_sectors',  500)
    626         expression2 diskstats('sda', 'write_sectors', 500)
    627         length 13
    628         direction 'E'
    629 #       style 'H'
    630         update tack
    631         Foreground '5f5f5f'
    632         Background '3f3f3fFF'
    633         BarColor0 '00FF00'
    634         BarColor1 'FF0000'
    635 }
    636 
    637 Widget SpaceText1 {
    638         class 'Text'
    639         expression statfs(SpaceDir, 'blocks')*statfs(SpaceDir, 'bsize')/1073741824
    640         prefix SpaceDir
    641         postfix 'G'
    642         precision  0
    643         width 13
    644         align 'R'
    645         update minute
    646         Foreground 'ffffff'
    647         Background 'FFFFFF00'
    648 }
    649 
    650 Widget SpaceText2 {
    651         class 'Text'
    652         expression statfs(SpaceDir, 'bavail')*statfs(SpaceDir, 'bsize')/1073741824
    653         prefix 'Free:'
    654         postfix 'G'
    655         precision  0
    656         width 13
    657         align 'R'
    658         update minute
    659         Foreground 'ffffff'
    660         Background 'FFFFFF00'
    661 }
    662 
    663 
    664 Widget SpaceBar {
    665         class 'Bar'
    666         expression  statfs(SpaceDir, 'blocks') - statfs(SpaceDir, 'bavail')
    667         length 13
    668         direction 'E'
    669 #       style 'H'
    670         max statfs(SpaceDir, 'blocks')
    671         update tick
    672         Foreground '5f5f5f'
    673         Background '00FF00FF'
    674         BarColor0 'FF0000'
    675         BarColor1 'EE3333'
    676 }
    677 
    678 Widget NetText1 {
    679         class 'Text'
    680         expression netdev::fast('eth1', 'Tx_bytes', 500)/1024
    681         prefix 'Up:'
    682         postfix 'K/s'
    683         width 13
    684         precision  0
    685         align 'R'
    686         update tick
    687         Foreground 'ffffff'
    688         Background 'FFFFFF00'
    689 }
    690 
    691 Widget NetText2 {
    692         class 'Text'
    693         expression netdev::fast('eth1', 'Rx_bytes', 500)/1024
    694         prefix 'Down:'
    695         postfix 'K/s'
    696         precision  0
    697         width 13
    698         align 'R'
    699         update tick
    700         Foreground 'ffffff'
    701         Background 'FFFFFF00'
    702 }
    703 
    704 Widget NetBar {
    705         class 'Bar'
    706         expression netdev('eth1', 'Tx_bytes', 500)
    707         expression2  netdev('eth1', 'Rx_bytes', 500)
    708         length 13
    709         direction 'E'
    710 #       style 'H'
    711 #       max 2097152
    712 #       max 204800
    713         update tack
    714         Foreground '5f5f5f'
    715         Background '3F3F3FFF'
    716         BarColor0 '00FF00'
    717         BarColor1 'FF0000'
    718 }
    719 
    720 Widget UpText {
    721         class 'Text'
    722         expression uptime('%dd %H:%M:%S')
    723         width 13
    724         align 'R'
    725         update tick
    726         Foreground 'ffffff'
    727         Background 'FFFFFF00'
    728 }
    729 
    730 Widget IPText {
    731         class 'Text'
    732         expression netinfo::ipaddr('eth1')
    733         width 15
    734         align 'L'
    735         update minute
    736         Foreground 'ffffff'
    737         Background 'FFFFFF00'
    738 }
    739 
    740 Widget AqiBar01 {
    741         class 'Image'
    742 #       file datadir . 'aqi' . (file::readline(datadir . 'aqilast', 1)) . '.png'
    743         file datadir . 'aqi.png'
    744         reload 1
    745         update minute
    746         inverted 0
    747         visible 1
    748 }
    749 
    750 Widget AqiMain {
    751         class 'Image'
    752         file imgadir . 'aqi' . (file::readline(datadir . 'aqi', 1)) . '.png'
    753         reload 1
    754         update minute
    755         inverted 0
    756         visible 1
    757 }
    758 
    759 Widget DorNFlag {
    760         class      'Timer'
    761         expression DorN=(((strftime('%H%M', time()))>(file::readline(datadir.'weather',11))) & ((strftime('%H%M', time()))<(file::readline(datadir.'weather',12)+1200)))?'d':'n'
    762         active    1
    763         update     second
    764 }
    765 
    766 Display 'DPF'
    767 
    768 #Display 'Image'
    769 
    770 Layout mylayout {
    771         Row02.Col40 'Kernel1'
    772         Row03.Col40 'Kernel2'
    773         Row05.Col40 'CPUText'
    774         Row06.Col40 'CPUBar'
    775         Row08.Col40 'LoadText'
    776         Row09.Col40 'LoadBar'
    777         Row11.Col40 'RAMText1'
    778         Row12.Col40 'RAMText2'
    779         Row13.Col40 'RAMBar'
    780         Row15.Col40 'DiskText1'
    781         Row16.Col40 'DiskText2'
    782         Row17.Col40 'DiskBar'
    783         Row19.Col40 'SpaceText1'
    784         Row20.Col40 'SpaceText2'
    785         Row21.Col40 'SpaceBar'
    786         Row23.Col40 'NetText1'
    787         Row24.Col40 'NetText2'
    788         Row25.Col40 'NetBar'
    789         Row27.Col40 'UpText'
    790         Row28.Col40 'IPText'
    791         Row27.Col2 'WeaInformation1'
    792         Row28.Col2 'WeaInformation2'
    793         Row29.Col2 'WeaInformation3'
    794 
    795         Layer 2 {
    796                 X1.Y1 'Bgnd'
    797         }
    798         Layer 1 {
    799                 X99.Y1 'Weather1'
    800 
    801                 X107.Y141 'Weather2'
    802 
    803                 X14.Y10 'Year1'
    804                 X14.Y24 'Year2'
    805                 X14.Y38 'Year3'
    806                 X14.Y52 'Year4'
    807                 X14.Y72 'Month1'
    808                 X14.Y86 'Month2'
    809                 X14.Y106 'Day1'
    810                 X14.Y120 'Day2'
    811                 X12.Y145 'Week1'
    812                 X52.Y22 'Hour1'
    813                 X52.Y61 'Hour2'
    814                 X52.Y116 'Minute1'
    815                 X52.Y154 'Minute2'
    816                 X103.Y99 'Second1'
    817                 X103.Y107 'Second2'
    818 
    819         }
    820         Layer 0 {
    821                 X155.Y140 'PMDetail1'
    822                 X155.Y148 'PMDetail2'
    823                 X155.Y156 'PMDetail3'
    824 
    825                 X153.Y166 'PMInfoLevel'
    826                 X169.Y134 'AqiMain'
    827                 X185.Y124 'AqiBar01'
    828 
    829                 X161.Y44 'WeaTmplA01'
    830                 X161.Y62 'WeaTmplA02'
    831                 X161.Y80 'WeaTmplA03'
    832                 X161.Y98 'WeaTmplA04'
    833 
    834                 X189.Y36 'WeaTmplB01'
    835                 X189.Y44 'WeaTmplB02'
    836                 X189.Y52 'WeaTmplB03'
    837                 X189.Y60 'WeaTmplB04'
    838                 X189.Y68 'WeaTmplB05'
    839                 X189.Y76 'WeaTmplB06'
    840                 X189.Y84 'WeaTmplB07'
    841                 X189.Y92 'WeaTmplB08'
    842                 X189.Y100 'WeaTmplB09'
    843                 X189.Y108 'WeaTmplB10'
    844 
    845                 X137.Y138 'WeaTmplC01'
    846                 X137.Y144 'WeaTmplC02'
    847                 X137.Y150 'WeaTmplC03'
    848                 X137.Y156 'WeaTmplC04'
    849                 X137.Y162 'WeaTmplC05'
    850                 X137.Y168 'WeaTmplC06'
    851                 X137.Y174 'WeaTmplC07'
    852                 X137.Y180 'WeaTmplC08'
    853                 X137.Y186 'WeaTmplC09'
    854                 X137.Y192 'WeaTmplC10'
    855                 X117.Y182 'WeatherT'
    856 
    857         }
    858         Timer1 'DorNFlag'
    859 }
    860 
    861 Layout 'mylayout'
    862 
    863 Variables {
    864         backlight 4
    865         tick 500
    866         tack 200
    867         second 1000
    868         minute 60000
    869         DorN      'd'
    870         imgadir   '/mnt/lcd4linux/img/'
    871         datadir   '/mnt/lcd4linux/data/'
    872         SpaceDir  '/volume2'
    873 }
    874 # Timer
    875 
    876 Widget FlagOnOffTimer {
    877     class 'Timer'
    878     expression flagOnOff=(time() % 10 < 5)?0:1
    879     active 1
    880     update tick
    881 }
    882 
    883 Widget FlagStateTimer {
    884     class 'Timer'
    885     expression flagState=(time() % 15 < 5)?1:((time() % 15 > 9)?3:2)
    886     active 1
    887     update tick
    888 }
    889 
    890 Widget LcdLightTimer{
    891     class 'Timer'
    892     expression LCD::backlight(file::readline(cfgpath . 'light.conf', 1))
    893     active 1
    894     update second * 5
    895 }
    896 # Timer
    897     Timer1 'FlagOnOffTimer'
    898     Timer2 'FlagStateTimer'
    899     Timer3 'LcdLightTimer'
    900 }
     38To build this driver you need libusb and libjpeg.