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: Michael R. <re...@eu...> - 2005-06-08 15:20:48
|
Hi Luis, > Ok, but we need to 'spinlock' around key polling because writing to > the LCD and reading the buttons uses the same 8 bit bus... No problem: thread.[ch] already provides mutex functions. But I see another problem, which I didn't think of: If your separate thread rises an event/signal, I have to pass this to the main thread :-( >>A handler will be a Evaluator expression. > Ok, something like a plugin then? The 'handler' is not a plugin, but an expression (which can call functions from plugins, of course). > We will need to have the output to the LCD and the input from the keys > in the same driver because of that 'spinlock' issue. Right. There will be a helper file "event.c", which will provide functions to raise an event. There will be "event classes", one of them being a keyboard event. A code fragment from your key polling thread could look like this: while (1) { mutex_lock(my_mutex); key = poll_keypad(); mutex_unlock(my_mutex); if (key >0) { now=time(); if (now-last > KEYPAD_DEBOUNCE_TIME) { event_raise (EVENT_KEY, key) } last=now; } usleep (keypad_delay); } I'm not shure if debouncing is that easy :-) Probably there should be a difference between key press and key release. > I was afraid of that... unfortunately i have NO idea how to do it > properly... see above :-) bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Luis.F.Correia <Lui...@se...> - 2005-06-08 14:14:27
|
Hi! (thanks for your quick reply) > -----Original Message----- > From: Michael Reinelt [mailto:re...@eu...] > Sent: Wednesday, June 08, 2005 2:42 PM > To: lcd4linux-devel > Subject: [Lcd4linux-devel] Re: I2C Keyboard implementation > > Hi Luis, Paul, > > I'm moviing this to the devel list... > > > as you know, me and Paul are designing an advanced I2C > display with a lot of > > added features such as keyboard buttons. > Sounds interesting! > > > Before we start with the actual hardware design, we would > like to know how > > are you planning to read the keys, as we will have to do > some jogging to > > read them from our HW implementation, as a lot of stuff is using the > > available I2C bits. > > I must admit that I'm not yet sure how this will be implemented. well, you should know by now... > > The best thing to do is to prepare a hook function that we > will handle, and > > that would take care of reading the keys between the writes > to the LCD. > > No, there will be no hook. For several reasons. And 'polling' > before/between/after display writes is a *bad* idea: Due to the > double-buffering in lcd4linux, there may be no display writes > for a long > period of time (when nothing changes on the display). If you want to > read keys, you have to use a separate thread. Ok, but we need to 'spinlock' around key polling because writing to the LCD and reading the buttons uses the same 8 bit bus... > Have a look into the Crystalfontz driver (or was it MatroxOrbital?) > These displays have keypads, which send keycodes asynchronously. These > packets are processed by a separate thread, but just logged and not > really used (yet). > > Another source would be the HD44780 driver, especially for the LCM162: > It uses a seperate thread for key polling, too. Have a look at the > drv_HD_LCM162_timer() function. Ok, will do that once we have the overall design ready. > I think there will be some sort of a 'event' system. you can > trigger an > event (or call it a signal if you like) anywhere in > lcd4linux, and there > will be 'handlers' which get the event. If there's no handler for a > event, it will (more or less) silently be dropped. > > Possible event sources are: keypads, timers, ... > > A handler will be a Evaluator expression. Ok, something like a plugin then? We will need to have the output to the LCD and the input from the keys in the same driver because of that 'spinlock' issue. > > The only possible problem that I'm seeing is the lack of proper > > key-debouncing, but that would preferrably done in your > side on the code :) > Oh no, debouncing is your job. I was afraid of that... unfortunately i have NO idea how to do it properly... > > > bye, Michael > Luis Correia |
From: paul k. <pau...@xs...> - 2005-06-08 14:08:51
|
Hi, >>The only possible problem that I'm seeing is the lack of proper >>key-debouncing, but that would preferrably done in your side on the code :) >> >> >Oh no, debouncing is your job. > > > I am sure Luis means that debouncing has to be performed in the thread that reads the keys. Not in the "upstream" keyboard handling of lcd4linux. Real hardware debouncing would require adding a full keymap chip. We don't want to do that. Cheers, Paul |
From: Michael R. <re...@eu...> - 2005-06-08 13:47:52
|
Hi Luis, Paul, I'm moviing this to the devel list... > as you know, me and Paul are designing an advanced I2C display with a lot of > added features such as keyboard buttons. Sounds interesting! > Before we start with the actual hardware design, we would like to know how > are you planning to read the keys, as we will have to do some jogging to > read them from our HW implementation, as a lot of stuff is using the > available I2C bits. I must admit that I'm not yet sure how this will be implemented. > The best thing to do is to prepare a hook function that we will handle, and > that would take care of reading the keys between the writes to the LCD. No, there will be no hook. For several reasons. And 'polling' before/between/after display writes is a *bad* idea: Due to the double-buffering in lcd4linux, there may be no display writes for a long period of time (when nothing changes on the display). If you want to read keys, you have to use a separate thread. Have a look into the Crystalfontz driver (or was it MatroxOrbital?) These displays have keypads, which send keycodes asynchronously. These packets are processed by a separate thread, but just logged and not really used (yet). Another source would be the HD44780 driver, especially for the LCM162: It uses a seperate thread for key polling, too. Have a look at the drv_HD_LCM162_timer() function. I think there will be some sort of a 'event' system. you can trigger an event (or call it a signal if you like) anywhere in lcd4linux, and there will be 'handlers' which get the event. If there's no handler for a event, it will (more or less) silently be dropped. Possible event sources are: keypads, timers, ... A handler will be a Evaluator expression. > The only possible problem that I'm seeing is the lack of proper > key-debouncing, but that would preferrably done in your side on the code :) Oh no, debouncing is your job. bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Michael R. <re...@eu...> - 2005-06-06 09:24:53
|
Hi Paul, >>> - char *value = ""; >>> - char *status; >>> + const char *value = ""; >>> + const char *status; > Why shouldn't this be correct? Even if mysql_stat returns a char * > (which in my case it doesn't), the string are never modified in the > function. > So there is no reason why these can't be defined as const. You are right. 'const' confuses me sometimes :-) I did check in your changes. bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: paul k. <pau...@xs...> - 2005-06-06 09:01:30
|
Hi Michael, >>< char *value = ""; >>< char *status; >>--- >> >> >>> const char *value = ""; >>> const char *status; >>> >>> > >Hmmm... I don't think this is correct... >Could you please send me your mysql.h? > > > Why shouldn't this be correct? Even if mysql_stat returns a char * (which in my case it doesn't), the string are never modified in the function. So there is no reason why these can't be defined as const. cheers, Paul |
From: Michael R. <re...@eu...> - 2005-06-06 08:36:14
|
Hi Paul, > Here is the cvs diff output to make the changes more clear: > (Sorry I don't know how to create a diff file directly from cvs) cvs -z9 diff -bu >file.diff > 192,193c192,193 > < char *value = ""; > < char *status; > --- >> const char *value = ""; >> const char *status; Hmmm... I don't think this is correct... Could you please send me your mysql.h? > 195c195 > < if (configure_mysql > 0) { > --- >> if (configure_mysql() > 0) { This is really a bug... bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: paul k. <pau...@xs...> - 2005-06-06 07:23:45
|
Here is the cvs diff output to make the changes more clear: (Sorry I don't know how to create a diff file directly from cvs) Index: plugin_mysql.c =================================================================== RCS file: /cvsroot/lcd4linux/lcd4linux/plugin_mysql.c,v retrieving revision 1.6 diff -r1.6 plugin_mysql.c 192,193c192,193 < char *value = ""; < char *status; --- > const char *value = ""; > const char *status; 195c195 < if (configure_mysql > 0) { --- > if (configure_mysql() > 0) { paul kamphuis wrote: > Hi Michael, > > Here is the warning I get from the plugin_mysql.c file. > > gcc -DHAVE_CONFIG_H -I. -I. -I. -D_GNU_SOURCE -Wall -W -g -O2 -c > plugin_mysql.c > plugin_mysql.c: In function `my_MySQLstatus': > plugin_mysql.c:195: warning: ordered comparison of pointer with > integer zero > plugin_mysql.c:198: warning: assignment discards qualifiers from > pointer target type > > First one is a true bug. > This > if (configure_mysql > 0) { > should be > if (configure_mysql() > 0) { > > > For the second warning. > In my mysql/mysql.h is mysql_stat defined as > const char * STDCALL mysql_stat(MYSQL *mysql); > So need to use some const qualifiers: > > Here is the modified function. I can't commit the changes because of > some "sticky flag" :-( > > static void my_MySQLstatus(RESULT * result) > { > *const *char *value = ""; > *const *char *status; > > if (*configure_mysql() *> 0) { > > mysql_ping(&conex); > status = mysql_stat(&conex); > if (!status) { > error("[MySQL] status error: %s", mysql_error(&conex)); > value = "error"; > } else { > value = status; > } > } > > SetResult(&result, R_STRING, value); > } > > Cheers, > > Paul > > > ------------------------------------------------------- > This SF.Net email is sponsored by: NEC IT Guy Games. How far can you > shotput > a projector? How fast can you ride your desk chair down the office > luge track? > If you want to score the big prize, get to know the little guy. Play > to win an NEC 61" plasma display: http://www.necitguy.com/?r=20 > _______________________________________________ > Lcd4linux-devel mailing list > Lcd...@li... > https://lists.sourceforge.net/lists/listinfo/lcd4linux-devel > > |
From: paul k. <pau...@xs...> - 2005-06-06 07:08:52
|
Hi Michael, Here is the warning I get from the plugin_mysql.c file. gcc -DHAVE_CONFIG_H -I. -I. -I. -D_GNU_SOURCE -Wall -W -g -O2 -c plugin_mysql.c plugin_mysql.c: In function `my_MySQLstatus': plugin_mysql.c:195: warning: ordered comparison of pointer with integer zero plugin_mysql.c:198: warning: assignment discards qualifiers from pointer target type First one is a true bug. This if (configure_mysql > 0) { should be if (configure_mysql() > 0) { For the second warning. In my mysql/mysql.h is mysql_stat defined as const char * STDCALL mysql_stat(MYSQL *mysql); So need to use some const qualifiers: Here is the modified function. I can't commit the changes because of some "sticky flag" :-( static void my_MySQLstatus(RESULT * result) { *const *char *value = ""; *const *char *status; if (*configure_mysql() *> 0) { mysql_ping(&conex); status = mysql_stat(&conex); if (!status) { error("[MySQL] status error: %s", mysql_error(&conex)); value = "error"; } else { value = status; } } SetResult(&result, R_STRING, value); } Cheers, Paul |
From: Michael R. <re...@eu...> - 2005-06-05 11:38:33
|
Hi Paul, > This is really strange. First I am not using the anonymous CVS, but the > developer CVS. So a possible delay of a day should not be the case. > Hmm.. what is the difference between > cvs update > and > cvs update -Dp I assume you mean 'cvs update -dP' (not -Dp) -d creates any missing local directories -P prunes empty directories > I just did the second one, and now I do get the new python.m4. :-) > And YES!!!, it does work now. Good work. Great! > I only have one remaining compile warning in the mysql plugin. So I > think we are nearly ready for release. That's real good. What exactly is this warning about? I cannot reproduce, because I don't have mysql-devel installed, so the plugin never gets built here... bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Luis C. <lfc...@lf...> - 2005-06-03 22:07:39
|
Michael Reinelt wrote: > >> temp = ((((temp && 0x00FF)<< 9) + (temp >> 8)) >> 3) / 2; >> qprintf(val, 9, "%d", temp); >> SetResult(&result, R_STRING, &val); >> >> > >Why not return temp as a numeric value? > >double val=temp; >SetResult(&result, R_NUMBER, &val) > > > Perfect, this is exactly what I needed! >(SetResult expects a double* with R_NUMBER, therefore you have to use a >2nd variable) > > >bye, Michael > > > And it was also the widget size ;) THANKS!!! Luis |
From: Michael R. <re...@eu...> - 2005-06-03 17:17:18
|
Hi Luis, > The current I2C code is PCF8574 specific and will probably not work > with just any I2C displays. While the bus related stuff is probably > OK, it will depend on how this particular I2C display was wired. Ah, I understand: The current i2c support is HD44780 specific... thanks, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Michael R. <re...@eu...> - 2005-06-03 17:16:59
|
> I create a widget of text class and read the value with 'expression > readwraptemp()' > It shows an * instead of 31 which was the board temp last night. > temp = ((((temp && 0x00FF)<< 9) + (temp >> 8)) >> 3) / 2; > qprintf(val, 9, "%d", temp); > SetResult(&result, R_STRING, &val); Why not return temp as a numeric value? double val=temp; SetResult(&result, R_NUMBER, &val) (SetResult expects a double* with R_NUMBER, therefore you have to use a 2nd variable) bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Michael R. <re...@eu...> - 2005-06-03 17:12:07
|
Hi Luis, > It compiles ok and the 'temp' variable has the proper value as if I > print it, it has the correct value. > > I create a widget of text class and read the value with 'expression > readwraptemp()' > It shows an * instead of 31 which was the board temp last night. I'm quite sure that the width of your widget is too small. In this case the text widget prints a number of asterisks to let the user know that there's an overflow. But there's another way to test plugins: just use the 'interactive mode' of lcd4linux: run it with '-i' (or '-ii' to enter interactive mode before the display gets initialized), and enter any expressions at the prompt. HTH, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Luis C. <lfc...@lf...> - 2005-06-03 06:46:32
|
Hi! I've been trying to create a plugin for reading the temp off my embedded board. Before you ask why don't I use the lm_sensors package, I reply: lm_sensors does not support the LM77. Now, attached you'll find the file. It compiles ok and the 'temp' variable has the proper value as if I print it, it has the correct value. I create a widget of text class and read the value with 'expression readwraptemp()' It shows an * instead of 31 which was the board temp last night. Thanks for all the help you could spare. Luis Correia |
From: Luis C. <lfc...@lf...> - 2005-06-02 06:52:40
|
Michael Reinelt wrote: >Hi all, > >Paul answered my question about i2c-over-parport, and pointed me here: > > > >>http://www.linuxhq.com/kernel/v2.6/12-rc3/Documentation/i2c/i2c-parport >> >> > >Looks like this i2c-parport is part of the standard kernel (at least my >2.6.11). Anyone out there could try this one with the current i2c code? >I don't have any i2c display up and running here.... > > > The current I2C code is PCF8574 specific and will probably not work with just any I2C displays. While the bus related stuff is probably OK, it will depend on how this particular I2C display was wired. I have no 'real' i2c displays around here to test. >If this works, someone should write some documentation in the wiki :-( > > >bye, Michael > > > Luis Correia |
From: Michael R. <re...@eu...> - 2005-06-02 03:29:24
|
Hi all, Paul answered my question about i2c-over-parport, and pointed me here: > http://www.linuxhq.com/kernel/v2.6/12-rc3/Documentation/i2c/i2c-parport Looks like this i2c-parport is part of the standard kernel (at least my 2.6.11). Anyone out there could try this one with the current i2c code? I don't have any i2c display up and running here.... If this works, someone should write some documentation in the wiki :-( bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Michael R. <re...@eu...> - 2005-06-02 03:24:57
|
Hi Luis, Martin, >> builds fine here >> (with "--without-python --with-plugins=all,!mysql,!dvb") > Yes, "--without-python" does work ok. Fine. But it should work without any "--without-python", too, because the default for "--with-python" is "no". Could you please test this, too? Thanks, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Luis C. <lfc...@lf...> - 2005-06-01 22:58:08
|
Hi! after we have managed to get it working, time to refine and improve stuff. I got the latest ACCESS.bus driver for my Geode based CPU from the AMD website. Surprisingly, it is no longer a 1200 baud terminal, but a very useable I2C LCD display. Now i'm working on providing a slightly modified driver for the I2C bus, that will work in the embedded platforms that use the SC1100 Geode processor. While this information may seem off-topic for LCD4linux, it is relevant, believe me. Luis Correia |
From: Luis C. <lfc...@lf...> - 2005-06-01 18:15:08
|
Martin Hejl wrote: > Hi Michael, > >> just committed! pleas test! > > builds fine here > (with "--without-python --with-plugins=all,!mysql,!dvb") > I'm probably won't be able to test the binary before the weekend, > since it compiles ok in my uClibc sandbox, I don't see what could be > wrong. > Yes, "--without-python" does work ok. <uClibc comment to Martin>It compiles fine in my slightly modified buildtool setup for lcd4linux</uClibc comment to Martin> :) > Martin Luis Correia |
From: Tilda J. <Jac...@ga...> - 2005-06-01 17:49:40
|
Hello, as he proffered a folded sheet.I will do my best. God knows I will do my = best, the boy protested.culpable. I neglect observation. Always it = is my way. I make toowould have done better to have trusted the = instinct that was inthree and then proceed to recruit some six or = eight others. He wasand had moved to disturb the peace and = tranquillity of the kingdomHeroic, is it? Bedad, it's epic! Ye = begin to perceive the breadthThat'll be the signal to lie to, said = Blood, in the same listlesshaggle with us about our share, and to = beat us down after thearrest.towards the little huddle of huts built = of mud and wattles - astately red-hulled frigate, flying the English = ensign.Spanish morions on their heads, overshadowing their faces, = andThere was a moment's silence, until Blood realized what he wasthe = veins showed blue, brought forth a handkerchief with which heYou = might put it that way. |
From: Martin H. <ma...@he...> - 2005-06-01 17:38:37
|
Hi Michael, > just committed! pleas test! builds fine here (with "--without-python --with-plugins=all,!mysql,!dvb") I'm probably won't be able to test the binary before the weekend, since it compiles ok in my uClibc sandbox, I don't see what could be wrong. Martin |
From: Michael R. <re...@eu...> - 2005-06-01 13:22:59
|
just committed! pleas test! bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Michael R. <re...@eu...> - 2005-06-01 12:01:38
|
Hi Paul, >> [i2c emulated by parallel or serial port] > I don't think we should. Most certainly not right now. I remember seeing > a kernel module somewhere that > provided this i2c over parallel port emulation. That could be a nice > solution for it. Sounds good. do you have an URL? I will need any i2c to test my new displays! bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Michael R. <re...@eu...> - 2005-06-01 11:59:23
|
Hi Luis, > For my embedded board, i'm also thinking to add temperature reading, as > the sensor is also present in the other I2C bus. And no, i will not use > lm_sensors for that. The device is not supported and the whole > lm_sensors is kinda bloated for what I need. To give you an idea, > reading the temperature is a 6 liner . > --------------------- > i2c_device = open("/dev/i2c-1",O_RDWR); > ioctl(i2c_device,I2C_SLAVE, (0x90>>1) ); > temp = i2c_smbus_read_word_data(i2c_device, 0); > temp = ((((temp && 0x00FF)<< 9) + (temp >> 8)) >> 3) / 2; > printf("temperature: %i \n",temp); > close(i2c_device); > --------------------- Looks like a candiate for a plugin (but independent from the driver). Maybe a as-generic-as-possible one, so you can read from any i2c device... bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |