You can subscribe to this list here.
2004 |
Jan
(57) |
Feb
(71) |
Mar
(80) |
Apr
(40) |
May
(49) |
Jun
(20) |
Jul
(3) |
Aug
(9) |
Sep
(8) |
Oct
(2) |
Nov
|
Dec
(11) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(10) |
Feb
(25) |
Mar
(24) |
Apr
(26) |
May
(71) |
Jun
(35) |
Jul
(5) |
Aug
(3) |
Sep
(18) |
Oct
(4) |
Nov
(5) |
Dec
(2) |
2006 |
Jan
(50) |
Feb
(12) |
Mar
(7) |
Apr
(24) |
May
(1) |
Jun
(17) |
Jul
(51) |
Aug
(38) |
Sep
(38) |
Oct
(33) |
Nov
(8) |
Dec
(13) |
2007 |
Jan
(44) |
Feb
(25) |
Mar
(21) |
Apr
(68) |
May
(52) |
Jun
(24) |
Jul
(17) |
Aug
(12) |
Sep
(4) |
Oct
(14) |
Nov
(1) |
Dec
(3) |
2008 |
Jan
(9) |
Feb
(1) |
Mar
|
Apr
(5) |
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(5) |
Oct
(5) |
Nov
(1) |
Dec
|
2009 |
Jan
(4) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(21) |
Jun
(5) |
Jul
|
Aug
|
Sep
(4) |
Oct
(1) |
Nov
|
Dec
|
2010 |
Jan
(15) |
Feb
(36) |
Mar
(1) |
Apr
|
May
|
Jun
(2) |
Jul
(3) |
Aug
|
Sep
(2) |
Oct
|
Nov
(1) |
Dec
(3) |
2011 |
Jan
(22) |
Feb
(2) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(25) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2012 |
Jan
(14) |
Feb
(6) |
Mar
(20) |
Apr
(12) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(2) |
Dec
|
2013 |
Jan
|
Feb
(3) |
Mar
(2) |
Apr
(1) |
May
(9) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
(2) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
(11) |
Jul
(1) |
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <Mar...@t-...> - 2004-01-26 21:33:16
|
I forgot the config file! here it is: |
From: <Mar...@t-...> - 2004-01-26 21:16:10
|
Am 26.01.2004 20:44:40 schrieb(en) Michael Reinelt: > Hey! This screen looks cool! Could you please provide your .conf? > (good to know what cool designs are possible with my NextGeneration > layout) My Config file is in the attechment. > in your plugin_xmms.c, at line 96, add a line between > if (age>0 && age<=100) return 0; > and > // Open Filestream for '/tmp/xmms-info' > > which reads > debug ("DEBUG: re-reading /tmp/xmms-info..."); > > and start lcd4linux with -F -vv > Ok i've put a debugmessage befor the "if (age>0 && age<=10000) return 0;" and after it: // reread every 100msec only age=hash_age(&xmms, NULL, NULL); debug("XMMS: Hash-age=%i", age); if (age>0 && age<=10000) return 0; debug("DEBUG: rehash XMMS-informations age=%i", age); I've set the rehash time so high because so it is better debuging. Here the Output from lcd4linux: plugin_xmms.c: XMMS: Hash-age=8670 plugin_xmms.c: XMMS: Hash-age=8670 plugin_xmms.c: XMMS: Hash-age=8670 plugin_xmms.c: XMMS: Hash-age=8670 plugin_xmms.c: XMMS: Hash-age=8670 plugin_xmms.c: XMMS: Hash-age=9178 plugin_xmms.c: XMMS: Hash-age=9178 plugin_xmms.c: XMMS: Hash-age=9178 plugin_xmms.c: XMMS: Hash-age=9178 plugin_xmms.c: XMMS: Hash-age=9178 plugin_xmms.c: XMMS: Hash-age=9690 plugin_xmms.c: XMMS: Hash-age=9690 plugin_xmms.c: XMMS: Hash-age=9690 plugin_xmms.c: XMMS: Hash-age=9690 plugin_xmms.c: XMMS: Hash-age=9690 plugin_xmms.c: XMMS: Hash-age=10198 plugin_xmms.c: DEBUG: rehash XMMS-informations age=10198 plugin_xmms.c: XMMS: Hash-age=11111 plugin_xmms.c: DEBUG: rehash XMMS-informations age=11111 plugin_xmms.c: XMMS: Hash-age=12119 plugin_xmms.c: DEBUG: rehash XMMS-informations age=12119 plugin_xmms.c: XMMS: Hash-age=13130 plugin_xmms.c: DEBUG: rehash XMMS-informations age=13130 plugin_xmms.c: XMMS: Hash-age=14141 plugin_xmms.c: DEBUG: rehash XMMS-informations age=14141 plugin_xmms.c: XMMS: Hash-age=15659 plugin_xmms.c: DEBUG: rehash XMMS-informations age=15659 plugin_xmms.c: XMMS: Hash-age=16159 plugin_xmms.c: DEBUG: rehash XMMS-informations age=16159 plugin_xmms.c: XMMS: Hash-age=17170 plugin_xmms.c: DEBUG: rehash XMMS-informations age=17170 plugin_xmms.c: XMMS: Hash-age=18180 plugin_xmms.c: DEBUG: rehash XMMS-informations age=18180 plugin_xmms.c: XMMS: Hash-age=19190 plugin_xmms.c: DEBUG: rehash XMMS-informations age=19190 When the Timer hits the 10000sec he begins the reread everytime the value is called. Can you implement a own function to set the age to zero? This would made the code more transparent and better to understand, i think. So Long, Markus PS: My next Plugin is waiting in my development-directory. It will be able to read RDF-Newstickers from the web. but we should first fix the Xmms/hash-problem. If this is done i will finish my new plugin, |
From: Michael R. <re...@eu...> - 2004-01-26 19:44:50
|
Hi Markus, > I think there is a Problem in the xmms-plugin, but i cant find them. > It's a timing bug. > When i call a complex XMMS-Screen on my display, like: > ______________ > |Artist - Song | <- scrolling > |Playing | > |1:00-3:17 | > |===== | <- timebar > --------------------- Hey! This screen looks cool! Could you please provide your .conf? (good to know what cool designs are possible with my NextGeneration layout) > the screen will only refresh complete after ~6sec. 6 secs? strange... > I think that lcd4linux is rehasing the informatiion file for each value. > So i've played with the hash-age value in the plugin_xmms.c file. > when i set "if (age>0 && age<=20000)" the screnn will do all right for > 20 seconds, but dont refresh becaus of the long age of the hash. Right. > so i think after 20 seconds he must do a rehash of the file, allright? > so lcd4linux is rehashing the file after 20sec. > and now i think he had again 20 seconds, where he dont have to rehash, > but it seems that he now rehash the values every time when they were > called. so i think the age wouldn't be reset corretly. I took a quick look over the code, but I found no error here. Please try the following: in your plugin_xmms.c, at line 96, add a line between if (age>0 && age<=100) return 0; and // Open Filestream for '/tmp/xmms-info' which reads debug ("DEBUG: re-reading /tmp/xmms-info..."); and start lcd4linux with -F -vv it should print out the debug message every time the file is re-read. You could add other debug messages at certain points, too. the debug() functions acts just like a printf(), that means you can print parameters, too: debug ("Hi %s", name) bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Xavier V. <xav...@fr...> - 2004-01-26 16:54:02
|
> > I have now Debian SID on my Maschine > What was sid? testing or unstable? I never can remember these names...=20 > Anyone has a good "Eselsbr=FCcke"? SID is "Still in developpement", the forever name for unstable. Testing is sarge > > I've seen a Directory named debian in the CVS tree. what is it and ho= w =20 > > i use it? > It contains data for building debian packages, and is used by our=20 > "french connection" aka debianizing group. It is *not* needed to compil= e=20 > lcd4linux. Yes, the "french connection" is here ;) In fact it's here to acheave our project of debiannization of lcd4linux (to make it entrer the debian archive). But it's too a proper way to install lcd4linux ! type 'fakeroot debian/rules binary' in the lcd4linux dir and you'll have a .dev on the parent directory. I use it for every install from CVS snapshots. BTW : we're waiting 0.9.12 to be released before proposal to debian :/ --=20 Xavier VELLO <xav...@fr...> |
From: Michael R. <re...@eu...> - 2004-01-26 16:38:57
|
Hi Markus, > I have now Debian SID on my Maschine What was sid? testing or unstable? I never can remember these names...=20 Anyone has a good "Eselsbr=FCcke"? > and want to comlile the CVS Source, > but i got following error: >=20 > gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/X11R6/include -D_GNU_SOURCE -= =20 > Wall -g > -O2 -c parport.c > make: LIBTOOL@: Kommando nicht gefunden Now this look sreally strange! You could try to run ./bootstrap, which should (re)initialize all the=20 autotools > Which packages must be installed? I'm not shure, but I have: merlin:~ $ dpkg-query -l 'auto*' | grep "ii" ii autoconf 2.59-1 automatic configure script builder ii automake1.4 1.4-p6-8 A tool for generating GNU=20 Standards-complian ii automake1.7 1.7.9-3 A tool for generating GNU=20 Standards-complian ii autotools-dev 20040105.1 Update infrastructure for=20 config.{guess,sub} as for automake, I use V1.4, as 1.7 had some problems... > I've seen a Directory named debian in the CVS tree. what is it and how = =20 > i use > it? It contains data for building debian packages, and is used by our=20 "french connection" aka debianizing group. It is *not* needed to compile=20 lcd4linux. bye, Michael --=20 Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: <Mar...@t-...> - 2004-01-26 16:33:47
|
Hi List! I think there is a Problem in the xmms-plugin, but i cant find them. It's a timing bug. When i call a complex XMMS-Screen on my display, like: ______________ |Artist - Song | <- scrolling |Playing | |1:00-3:17 | |===== | <- timebar --------------------- the screen will only refresh complete after ~6sec. I think that lcd4linux is rehasing the informatiion file for each value. So i've played with the hash-age value in the plugin_xmms.c file. when i set "if (age>0 && age<=20000)" the screnn will do all right for 20 seconds, but dont refresh becaus of the long age of the hash. so i think after 20 seconds he must do a rehash of the file, allright? so lcd4linux is rehashing the file after 20sec. and now i think he had again 20 seconds, where he dont have to rehash, but it seems that he now rehash the values every time when they were called. so i think the age wouldn't be reset corretly. Maybe that it's fixed allready, but the CVS Service on sourceforge isn't reachable. Greets Markus -------- Markus Keil Chemnitz,Saxony Germany |
From: Xavier V. <xav...@fr...> - 2004-01-26 11:32:34
|
Hello list ! I recently discovered an old Apple Powerbook 100 notebook I forgot some time ago. With a friend, we dissected it and extracted the LCD screen, it's a 640x400 1bit flat panel, but the controller is on the mainboard. My friend told me it may be possible to connect it to a controller and then the controller on the PC. Does anyone of you know any controller which can handle it ? I'm searching for specs of this flat panel, but I don't know much of it. Bye ! -- Xavier VELLO <xav...@fr...> PS: I may be a little off topic of this list, but I'm not on lcd4linux-users |
From: Michael R. <re...@eu...> - 2004-01-26 05:01:45
|
Hi Xavier, >>Good idea! Today another attribute came to my mind: blinking! > > Yes ! Moreover, blink will be supported by all the displays ! But there > should be a blink time somewhat low, not tick. Of course. There will be just a new attribute. > BTW, I tested "marquee text", it's great, but isn't there a way to make > it slide more quikly ? It's very slow. The attribute is called "Speed", and descripes the time in milliseconds between two srolls. >>- I want not only a time-based graph, but a general graph where x and y >>can be any expressions. > > I don't really understand what could be used as x value to get a > somewhat useable graph ?! I promise you, I'll find one :-) > What a great usage ;) It could be used as icons (fixed or animated). > BTW, isn't there a way to toggle the display of an icon with some value > to emulate a GPO (add a visible attribute to any widget, and if the > expression is >0, display it). Good Idea, too! > At my side, I have the datasheet of the CW, but cwlinux didn't reply to > me :/ You got a CC of the mail I sent, didn't you ? Yes, I did. bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Michael R. <re...@eu...> - 2004-01-26 03:25:35
|
Hi Xavier, Hi List (if you ever get this one) > Hello Michael. As SF MLs have problems, I forward you this mail I posted on the ML. Right. Looks like SF having enough problems at the moment... > As the command to put one pixel is at least 5bytes long and the > transfert rate is 19200, it takes about 30seconds to write all the > display :/ I want to get to know the guy who designed this interface. I'd have some wet towels with me... > But there are some interesting features : > - The display can handle text, bars (without user characters) and > graphics togethed, so we can have some text, draw bars and display some > pixmap with the rest of the bandwith. Yes, that's right. We should use the "generic text" driver as a basis, which handles text, bar (and probably icon) widgets. But the driver may provide further "graphical" widgets... > - It support also 'inverted text', that's a good thing, for example if a > temperature hits a predefined maximum value, you should add such and > option to the text widget (and use it if the display supports it) Good idea! Today another attribute came to my mind: blinking! > Do you think it's possible to implement a time-based graph widget, and a > sort of 'fixed pixmap' widget (but which format to use for images ?) ? Everything is possible! - I want not only a time-based graph, but a general graph where x and y can be any expressions. - A "image" widget would be great! I'm going to prepare a photo of mine :-) > Moreover, GPIs are read on demand, so should we write a > plugin_cwlinux_gpi or add the function within the drv_cwlinux ? I don't > know your position on this point. I'm not shure either. I think it does not make much of a difference what kind of input you handle: a GPI, a tenmperature sensor, a fan sensor, or a keypad. OTOH, the first would be all simple plugins or functions, the latter should trigger an event. Hmmm... I think a GPI should be a function. And there sould be no plugin_*.c for this, but the function should be inside of drv_Cwlinux.c (as other plugins are at the moment, take a look at drv_MatrixOrbital). > There's still the problem of keypad handling, as the display sends the > keys directly, the driver should always be able to read this values. > Where can we implement this read ? directly drv ? plugin ? keypad.c ? Hmmm.. Give me some time on this issue. I've got three displays here with a keypad, I'll have to go through all these datasheets, and try to find a "common" solution. bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Xavier V. <xav...@fr...> - 2004-01-25 23:57:44
|
> > As the command to put one pixel is at least 5bytes long and the > > transfert rate is 19200, it takes about 30seconds to write all the > > display :/ > I want to get to know the guy who designed this interface. I'd have some > wet towels with me... lol > > - It support also 'inverted text', that's a good thing, for example if a > > temperature hits a predefined maximum value, you should add such and > > option to the text widget (and use it if the display supports it) > Good idea! Today another attribute came to my mind: blinking! Yes ! Moreover, blink will be supported by all the displays ! But there should be a blink time somewhat low, not tick. BTW, I tested "marquee text", it's great, but isn't there a way to make it slide more quikly ? It's very slow. > > Do you think it's possible to implement a time-based graph widget, and a > > sort of 'fixed pixmap' widget (but which format to use for images ?) ? > Everything is possible! > - I want not only a time-based graph, but a general graph where x and y > can be any expressions. I don't really understand what could be used as x value to get a somewhat useable graph ?! > - A "image" widget would be great! I'm going to prepare a photo of mine :-) What a great usage ;) It could be used as icons (fixed or animated). BTW, isn't there a way to toggle the display of an icon with some value to emulate a GPO (add a visible attribute to any widget, and if the expression is >0, display it). > I'm not shure either. I think it does not make much of a difference what > kind of input you handle: a GPI, a tenmperature sensor, a fan sensor, or > a keypad. OTOH, the first would be all simple plugins or functions, the > latter should trigger an event. > Hmmm... I think a GPI should be a function. And there sould be no > plugin_*.c for this, but the function should be inside of drv_Cwlinux.c > (as other plugins are at the moment, take a look at drv_MatrixOrbital). Ok > > There's still the problem of keypad handling, as the display sends the > > keys directly, the driver should always be able to read this values. > > Where can we implement this read ? directly drv ? plugin ? keypad.c ? > Hmmm.. Give me some time on this issue. I've got three displays here > with a keypad, I'll have to go through all these datasheets, and try to > find a "common" solution. At my side, I have the datasheet of the CW, but cwlinux didn't reply to me :/ You got a CC of the mail I sent, didn't you ? -- Xavier VELLO <xav...@fr...> |
From: Xavier V. <xav...@fr...> - 2004-01-25 12:54:40
|
> Hi List! Hi Markus ! > I have now Debian SID on my Maschine and want to comlile the CVS > Source, > but i got following error: > gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/X11R6/include -D_GNU_SOURCE - > Wall -g > -O2 -c parport.c > make: LIBTOOL@: Kommando nicht gefunden > make: *** [lcd4linux] Fehler 127 There's a problem in your Makefile. Try to delete Makefile and configure and type 'autoconf', then reconfigure ! If it doesn't work again, blame Michael, or try to do a new checkout ;) > I've seen a Directory named debian in the CVS tree. what is it and how > i use The faster way to use it is : - make sure it compiles with the normal ./configure && make command - deinstall the old hand-installed one (make uninstall) - in the lcd4linux directory, type 'fakeroot debian/rules binary', and wait (maybe you'll have to apt-get install fakeroot) - cd .. and you'll have a file named 'lcd4linux_0.9.11-1_i386.deb', it's the pacakge: type 'dpkg -i lcd4linux_0.9.11-1_i386.deb', and that's all ! Maybe the postinstall will fail, but don't matter, it'll work (and make a backup of your /etc/lcd4linux.conf before !) There's even a /etc/init.d/lcd4linux automatically activated for runlevel 2, delete your old init script of there's one. Bye ! -- Xavier VELLO <xav...@fr...> PS: there's no way to have a 'reply-to' header on SF MLs, so to reply to a post, choose 'reply to list' in your mail client, or the mail will go to the poster, not the list. |
From: <Mar...@t-...> - 2004-01-23 14:58:41
|
Hi List! I have now Debian SID on my Maschine and want to comlile the CVS Source, but i got following error: gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/X11R6/include -D_GNU_SOURCE - Wall -g -O2 -c parport.c make: LIBTOOL@: Kommando nicht gefunden make: *** [lcd4linux] Fehler 127 Which packages must be installed? Can someone help me to solve this problem? I've seen a Directory named debian in the CVS tree. what is it and how i use it? Greets Markus -------- Markus Keil Chemnitz,Saxony Germany |
From: Michael R. <re...@eu...> - 2004-01-20 13:07:42
|
Hi LCD4Linux users and developers, here's a short progress report: I just got the "default layout" from the old lcd4linux working on my MatrixOrbital unsing the new evaluator-style. I'm going to call this the "Next Generation" :-) Default Layout means: *** Linux 2.4.22 *** i686 CPU 1024 MB RAM Busy 13.0% [Bar] Load 0.2 [Bar] This means: - a lot of framework is here - the text widget is working - the bar widget is working - some basic plugins (/proc/cpuinfo, /proc/stat, ...) are working - the MatrixOrbital Driver is working to let more people work with the code, I'm going to port the next driver to the new architecture. I suppose the HD44780 is widely used, so this will be the next one. If YOU don't have neither a MatrixOrbital nor a HD4470, send me a box of beers, and I will think over my decision :-) stay tuned! bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Michael R. <re...@eu...> - 2004-01-18 21:22:49
|
Xavier, > I'm thinking about using or not the new hash uility for my i2c_sensors > plugin. But this plugins is bit different for the others (xmms, cpuinfo, > ...). In fact, each value is stored in a separate file, that's the > claim. Right. Hmm.... > - If I use and hash to store all values it'll force to parse about a > dozen of files for one or two used values ! I don't think it's the > better way :/ Rivht. > - On the other hand, using timers would be great ! Should I use a dozen > of different timeouts ? Hmm... > - Have an hash for the dozen of values, which may contain "null" values > of never asked for. Hmmm. Or does not even contain a value for a item never asked for. > - Have a second hash containing the timers for each value. double-Hmmm.... > The problem with this desing may be that the overload generated by the > hashes and all the timers may be more CPU intersive that parsing one > file o demand. Maybe right, but think of a scenario where oen specific value is needed several times: You want the temperature diplayed as a number, as a bar, and you want to control three different fans with it. The filke would be parsed five times... > What's your opinion about this ? My opinion is a loud and clear "Hmm..." :-) > Michael, is it possible to use the hash to store timer values ? Not really at the moment. A hash stores string values only. > Is there > another way, using only one timer ? I'm afriad one timer isn't possible. You don't know which data source the timer is for. With the new layout, each widget can have its own "polling frequency". Its possible to read the temparature three times a second, but some voltage only once a second. So there have to be different timeouts for different sources. Today I implemented something new on hashes: I call it "filters". It has something to do with timings, but on a completely different way than you'd need it. This filters are for sources which require something like "delta processing" (e.g. /proc/stat and the "CPU busy" thing: The value you can read there is the absolute number of cycles the CPU spent in different modes. One has to calculate deltas over a specific time to get a "current load". But that doesn't help you. Hmmm.... bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Xavier V. <xav...@fr...> - 2004-01-18 16:33:19
|
Hello to the list ! I'm thinking about using or not the new hash uility for my i2c_sensors plugin. But this plugins is bit different for the others (xmms, cpuinfo, ...). In fact, each value is stored in a separate file, that's the claim. - If I use and hash to store all values it'll force to parse about a dozen of files for one or two used values ! I don't think it's the better way :/ - On the other hand, using timers would be great ! Should I use a dozen of different timeouts ? A solution would be to - Have an hash for the dozen of values, which may contain "null" values of never asked for. - Have a second hash containing the timers for each value. - So the function looks at the 1st array, if there's no value it pools, if there's a value, it looks for the associated timer and does what it has to do. The problem with this desing may be that the overload generated by the hashes and all the timers may be more CPU intersive that parsing one file o demand. What's your opinion about this ? Michael, is it possible to use the hash to store timer values ? Is there another way, using only one timer ? Bye ! -- Xavier VELLO <xav...@fr...> |
From: Michael R. <re...@eu...> - 2004-01-18 08:50:42
|
Hi Xavier, > I have big problems with the evaluator ! > Using the y* tokens, I can't get it to work, and it even segfaults : > - if the function returns a string, I get with y1 xmms('Title') : There's been a bug. Should be fixed now. I did not use the Tokens for some time... sorry... bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Xavier V. <xav...@fr...> - 2004-01-17 19:25:29
|
Hi Markus ! > take a look at the lcd4linux.conf.sample in the actual CVS-Tree. > I think you need to use Widgets instead of tokens. The problem is that I have an HD44780 display, and the new drv sheme only works for matrix orbital displays ! As MO isn't the majority of displays, Michael (and you, others) should take care not to break the old system now in profit to the other which doesn't support the other models. Bye ! -- Xavier VELLO <xav...@fr... PS: maybe the new conf system works with the old drivers, I attached my conf and the output of lcd4linux -Fvvv |
From: Xavier V. <xav...@fr...> - 2004-01-17 12:48:47
|
Hi Michael ! I have big problems with the evaluator ! Using the y* tokens, I can't get it to work, and it even segfaults : - if the function returns a string, I get with y1 xmms('Title') : Evaluator: Unknown variable in expression <Nobuo Uenatsu - Opening Theme ~ Bombing Mission> internal error: invalid result type 0 Segmentation fault - if the function returns a number, like with cpuinfo('model') or xmms('Position') : Segmentation fault I spotted it debugging my i2c_sensors plugin, as it segfaulted when returning values, but now I know all the other plugins do it as well :/ Maybe you broke the thing while implementing the new drv interface and the new configuration scheme. Bye ! And good Segfault cleaning ;) PS: I attached my conf file, maybe there's something wrong with it. |
From: Xavier V. <xav...@fr...> - 2004-01-17 11:12:25
|
Hi Michael, Hi list, > > I fact, I thinked about a sort of 'callback' function : now if the eval > > doesn't know a function, it returns an error. It may call a function > > which loads the good plugin and evaluates the function, so that the > > evaluator doesn't mind and everybody's happy ;) It's not the evaluator > > that searches for plugins at startup, it 'learns' with its "errors". In > > this way, we don't need to modify much the eval. > And how should the evaluator know which .so to load? That's what the compile-time generated hash is about. We can generate (or staticaly write) a hash which lists all functions supported by a .so, so instead of printing "Unknown function", the eval should call a sort of "fallback" function which browses this hash, searching for the function the eval doesn't know, example : - we have this hash plugins { "i2c_sensors.so" -> "i2c_sensors"; "xmms.so" -> "xmms"; "example.so" -> "func1, func2"; ... } then the eval has to evaluate xmms('Title'), but doesn't know this function, it calls fallback('xmms') which : - browses the hash - finds function xmms is provided by xmms.so - loads /usr/lib/lcd4linux/plugins/xmms.so - return 0 then the evaluator can re-evaluate the function is fallback returns 0 or print "Unknown function" if !fallback(), that's all. I know it may be a bit confused, but it's clear in my head. I may try to write an example of such a fallback() func, but I'm not sure to succeed. > > This .so-ing may be later, but we should keep it in mind so that we > > don't do silly things that will prevent us to make it then. > Full ACK. ACK ? what does it mean ? Bye ! -- Xavier VELLO <xav...@fr...> PS: please Michael DON'T cc me anymore when ou reply to the list ! Isn't there a way to have a "reply-to" header like others maillists ? |
From: Michael R. <re...@eu...> - 2004-01-17 09:53:56
|
Hi Xavier, Hi list, >>If you use a hash, you fill up the hash with all values from >>/proc/cpuinfo when parsing it. Subsequent calls would not parse the file >>again, but read the values from the hash. > > Okay, I understand it ! In fact, hashes are handled by the plugins internally. Right! >>You have to use something like a "timeout", and remember the time when >>the contents of the file was last read. If the timeout is over, you have >>to read and parse the file again. > What about this timeout ? Is there a helper ? Maybe a function to > register timeouts and see if they timed-out. It may be in yet, sorry > I don't have to code under my eyes :/ The code is that simple that I didn't write a helper for it(although there is a timer queue management, but this is used for widge updates). If your timeout is 1 second or higher, and second-resolution is enough, use the following: static int parse_anything(void) { static time_t now=0; // reread every second only if (time(NULL)==now) return 0; time(&now); // real parsing happens here... return 0; } If you need higher resolutions (milliseconds), you need the following snippet: static struct timeval end = {0, 0}; struct timeval now; // update every 10 msec gettimeofday(&now, NULL); if (now.tv_sec==end.tv_sec? now.tv_usec<end.tv_usec:now.tv_sec<end.tv_sec) { return 0; } end.tv_sec = now.tv_sec; end.tv_usec = now.tv_usec + 1000*msec; while (end.tv_usec > 1000000) { end.tv_usec -= 1000000; end.tv_sec++; } // parse it... > 'lcd4linux -l' can load all > the drivers it knows, we don't matter about memory usage as it'll die > then. Same to list plugins. Thats what I'm thinking of, too. > I fact, I thinked about a sort of 'callback' function : now if the eval > doesn't know a function, it returns an error. It may call a function > which loads the good plugin and evaluates the function, so that the > evaluator doesn't mind and everybody's happy ;) It's not the evaluator > that searches for plugins at startup, it 'learns' with its "errors". In > this way, we don't need to modify much the eval. And how should the evaluator know which .so to load? > This .so-ing may be later, but we should keep it in mind so that we > don't do silly things that will prevent us to make it then. Full ACK. bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: <Mar...@t-...> - 2004-01-16 16:38:37
|
Michael Reinelt schrieb: > Hallo Markus, > > Das war jeder mal, und dazulernen sollte man sowieso immer. > > Gerne. Schaun wir mal deinen Code an: > ich hab vorne Zeilennummern dazugeschrieben, und beziehe mich dann darauf: > > ?? int len=strlen(key); > > 01 //Read Lines from the Stream > 02 while(fgets(zeile,200,xmms_stream)) { > 03 hash_key=key; val=zeile; > 04 if (strncmp(key, zeile, len)==0 && zeile[len]==':') { > 05 // remove trailing newline > 06 zeile[strlen(zeile)-1]='\0'; > 07 // add entry to hash table > 08 val=zeile+len+2; > 09 hash_set (&xmms, hash_key, val); > 10 time(&now); > 11 fclose(xmms_stream); > 12 } > 13 } > 14 } > > Zeile 04: Du springst in den innern Teil nur, wenn der gesuchte Key des > Plugins in der Zeile vorkommt. > > Zeile 09: Speichern des Werts im Hash nur, wenn der gesuchte Key > gefunden wurde. > > Zeile 10: Setzen des Zeitstempels ebenfalls nur bei gefundenem Key. > > Zeile 11: Schließen der Datei hier innerhalb der Schleife! Das ist ein > eher schwerer Fehler. Warum? > 1. würde das Programm wieder zu der while() bedingung zurückkehren, und > die lautet fgets(.., strem). Du hast aber stream gerade geschlossen. > nicht sehr nett... > 2. Stell dir vor, das Plugin wird mit einem Key aufgerufen, den es gar > nicht gibt. Der ganze if() zweig wird also nie ausgeführt. Kein hash > wird gespeichert. und die Datei wird *NIE* geschlossen. Beim nächsten > Aufruf wird sie erneut geöffnet (was aber einen neuen File-Deskrtiptor > zur Folge hat). Irgendwann gehen dem Prozess die Deskriptoren aus, und > er fällt auf die Nase... Hätt ich ja auch selber drauf kommen können. > Die Idee das hashes ist, die gesamte Datei mit allen zeilen einzulesen > und im hash zu speichern, dafür nur alle 1 Sekunden. Und vollkommen > unabhängig davon, welchen Key der User jetzt denn lesen wollte. Dieser > Wert wird erst anschließend aus dem hash gelesen. Wenn der Key nicht > existiert, kriegt er eben einen Fehler bzw. einen Leerstring. Jetz hab ich das Prinzip verstanden! > Zum Vergleich die neue Schleife: > > while(fgets(zeile,sizeof(zeile),xmms_stream)) { > char *c, *key, *val; > c=strchr(zeile, ':'); > if (c==NULL) continue; > key=zeile; val=c+1; > // strip leading blanks from key > while (isspace(*key)) *key++='\0'; > // strip trailing blanks from key > do *c='\0'; while (isspace(*--c)); > // strip leading blanks from value > while (isspace(*val)) *val++='\0'; > // strip trailing blanks from value > for (c=val; *c!='\0';c++); > while (isspace(*--c)) *c='\0'; > hash_set (&xmms, key, val); > } > > fclose(xmms_stream); > return 0; > > hier wird die gesamte Datei Zeile für Zeile gelesen. Wenn in der Zeile > kein Doppelpunkt vorkommt, wird die nächste zeile gelesen. Wenn ja, wird > am Doppelpunkt zwischen key und val aufgeteilt. Dann werden noch von key > und val vorne und hinten etwaige Leerzeichen entfernt (kommt zwar in > deiner /tmp/xmms-info nciht vor, aber man kann ja nie wissen... > > Was anderes: welche Art Display verwendest du denn? ich bin grad dabei, > Prioritäten zu vergeben, welche Treiber als nächstes auf die neue > Architektur portiert werden. ich würde den Treiber für dein Display > vorziehen, damit du dein Plugin auch mal in der Praxis testen kannst... > Ich hab ein HD44780 am parallel Port > > bye, Michi > -- Markus Keil Chemnitz,Saxony Germany |
From: <Mar...@t-...> - 2004-01-16 08:39:10
|
Michael Reinelt schrieb: > Just run lcd4linux with the option "-i", then you see an "eval>" > prompt, where you can enter your expressions. > > > you could either do a "cvs commit" and enter some changelog info, or do > a "cvs diff -u" and send the patch to me > Thanks! > Are you shure that tis is a good idea? > > for the 'complexity': > > xmms('title') > xmms-title() > > I cannot see much of a difference :-) > > But you'll give up a great advantage of the current scheme: content > insesitivity. > > I mean the plugin now uses the argument and looks up the corresponding > string/key/line in xmms-info. If the line could not be found, it returns > an empty string (or '??' or whatever). Now if someday xmms decides to > write a new info called "SuperJunk" into the info file, there's no need > to change your plugin, yu can use xmms('SuperJunk') immediately. > > I'm writing all my plugins this way. I think it's better. > Ok you have the better arguments! :-) Now i build in the HASH Function an upload it. greets, Markus -- Markus Keil Chemnitz,Saxony Germany |
From: Michael R. <re...@eu...> - 2004-01-16 05:43:45
|
Markus Keil schrieb: > Now i like to test the plugin to verify that it works correct. > So i need the Command for the Interactive mode of LCD4Linux, to read the > value of my function. Just run lcd4linux with the option "-i", then you see an "eval>" prompt, where you can enter your expressions. > Also i need some information how to upload the new version (if it works > perfectly) in the CVS-Tree. you could either do a "cvs commit" and enter some changelog info, or do a "cvs diff -u" and send the patch to me > - Every Value has its on Function > So users don't need to use complex Strings to get the information. > Now users can access the information over functions like xmms-status() > or xmms-title() Are you shure that tis is a good idea? for the 'complexity': xmms('title') xmms-title() I cannot see much of a difference :-) But you'll give up a great advantage of the current scheme: content insesitivity. I mean the plugin now uses the argument and looks up the corresponding string/key/line in xmms-info. If the line could not be found, it returns an empty string (or '??' or whatever). Now if someday xmms decides to write a new info called "SuperJunk" into the info file, there's no need to change your plugin, yu can use xmms('SuperJunk') immediately. I'm writing all my plugins this way. I think it's better. bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Michael R. <re...@eu...> - 2004-01-16 05:38:57
|
Hi Xavier, > Is it possible to do a checkout without asking for password (on my > account or as anonymous) ? Then it would be easy to do : It is, if you use "SSH shared keys", which I do. > Is there a simple command to send an attached file by mail ? There is. I used "mpack". My script is up and running. You should get a mail. The script will run from cron every night at 23:45 You might run into problems if you miss one update.... Anyone else having such a lousy internet connection so he/she wants this daily diffs per mail? bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: <Mar...@t-...> - 2004-01-15 22:48:07
|
Hi Devel-Team, since Michael Reinelt has add HASH functions, i've decided to rewrite my Plugin for XMMS to make some improvements to the Performance and to make it more user friendly. Now i like to test the plugin to verify that it works correct. So i need the Command for the Interactive mode of LCD4Linux, to read the value of my function. Also i need some information how to upload the new version (if it works perfectly) in the CVS-Tree. And now a overview of the Improvements that i have planned: - use HASH function to save CPU Time - Every Value has its on Function So users don't need to use complex Strings to get the information. Now users can access the information over functions like xmms-status() or xmms-title() - Some Memory savings by using only the needed length in char-arrays. So Long, Markus -- Markus Keil Chemnitz,Saxony Germany |