From: Zhengrong Z. <zhe...@gm...> - 2014-05-20 13:19:57
|
There is a LEGO Power Functions RC Encoding, the protocol can be found here: http://storage.technicbricks.com/Media/2010/TBs_20100304_1/LEGO%20Power%20Functions%20RC%20v120.pdf The basic concept as bew, i want to know how to implement it using LIRC or more simple way, is it possible? To ensure correct detection of IR messages six 38 kHz cycles are transmitted as mark. Low bit consists of 6 cycles of IR and 10 “cycles” of pause, high bit of 6 cycles IR and 21 “cycles” of pause and start bit of 6 cycles IR and 39 “cycles” of pause. Graphically drawn: The high pulse illustrates six 38 kHz cycles. Low bit length = 16 x 1/38K = 421 us High bit length = 27 x 1/38K = 711 us Start bit length = 45 x 1/38K = 1184 us Stop bit length = 45 x 1/38K = 1184 us This example shows start bit, 6 bits and stop bit (not really the actual protocol). Low Low Low Start High High High Stop Low bit (data = 0) High bit (data = 1) Start/Stop bit IR Mark |
From: Alec L. <lea...@gm...> - 2014-05-20 18:49:55
|
On 2014-05-20 15:19, Zhengrong Zang wrote: > There is a LEGO Power Functions RC Encoding, the protocol can be found > here: > http://storage.technicbricks.com/Media/2010/TBs_20100304_1/LEGO%20Power%20Functions%20RC%20v120.pdf > > > The basic concept as bew, i want to know how to implement it using > LIRC or more simple way, is it possible? > Well, the question is if you have a corresponding LEGO remote. If you have that you can use lirc as it's intended by using irrecord to record the data. If this works, transmitting it is straight-forward. OTOH, if you need to create these signals from scratch then lirc is probably not designed and documented for your needs (?) I'd suggest that you look for other tools in this case; a starting point might be http://harctoolbox.org/(although I'm sure there are more and perhaps better options out there). --alec |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-21 11:37:46
|
I want to send IR on cygwin by serial port to IR tower, is this possible? Sent from my iPad Mini Please try "Market Event" 请试用≪市场日程表≫ 請試用≪市場日程表≫ ≪市場予定≫を試してください http://AppStore.com/MarketEvent/ 2014/05/21 5:38、Bengt Martensson <bu...@be...> のメッセージ: > On 05/20/14 20:49, Alec Leamas wrote: >> On 2014-05-20 15:19, Zhengrong Zang wrote: >>> There is a LEGO Power Functions RC Encoding, the protocol can be found >>> here: http://storage.technicbricks.com/Media/2010/TBs_20100304_1/LEGO%20Power%20Functions%20RC%20v120.pdf >>> >>> >>> The basic concept as bew, i want to know how to implement it using >>> LIRC or more simple way, is it possible? >> >> Well, the question is if you have a corresponding LEGO remote. If you >> have that you can use lirc as it's intended by using irrecord to record >> the data. If this works, transmitting it is straight-forward. >> >> OTOH, if you need to create these signals from scratch then lirc is >> probably not designed and documented for your needs (?) I'd suggest >> that you look for other tools in this case; a starting point might be >> http://harctoolbox.org/ > > I read the document, and came up with the translation to the so-called > IRP-notation http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation : > > {38k,1p,msb}<6,-10|6,-21>(6,-39,T:1,E:1,D:2,a:1,M:3,F:4,LRC:4,6,-39,T=1-T) > {LRC=(T*8+E*4+D) ^ (a*16+M) ^ F} > [T@:0..1=0,E:0..1=0,D:0..3,a:0..1=0,F:0..15,M:0..7] > > This can be used by my program IrScrutinizer > (http://harctoolbox.org/IrScrutinizer.html) to generate the signals for > different values of the parameters, or transform to other formats like > (raw) Lirc. > > With some effort, it would probably be possible manually to construct > (non-raw) Lirc files too. > > What do you guys request? > >> (although I'm sure there are more and perhaps >> better options out there). > > You can write a microprocessor program for your favorite microprocessor, > an Arduino or such. But there is hardly a more compact or elegant > representation than the one above, or another way to generate the codes > without writing a program. > > Greetonations, > > Bengt > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs |
From: Bengt M. <bu...@be...> - 2014-05-20 20:38:22
|
On 05/20/14 20:49, Alec Leamas wrote: > On 2014-05-20 15:19, Zhengrong Zang wrote: >> There is a LEGO Power Functions RC Encoding, the protocol can be found >> here: http://storage.technicbricks.com/Media/2010/TBs_20100304_1/LEGO%20Power%20Functions%20RC%20v120.pdf >> >> >> The basic concept as bew, i want to know how to implement it using >> LIRC or more simple way, is it possible? >> > > Well, the question is if you have a corresponding LEGO remote. If you > have that you can use lirc as it's intended by using irrecord to record > the data. If this works, transmitting it is straight-forward. > > OTOH, if you need to create these signals from scratch then lirc is > probably not designed and documented for your needs (?) I'd suggest > that you look for other tools in this case; a starting point might be > http://harctoolbox.org/ I read the document, and came up with the translation to the so-called IRP-notation http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation : {38k,1p,msb}<6,-10|6,-21>(6,-39,T:1,E:1,D:2,a:1,M:3,F:4,LRC:4,6,-39,T=1-T) {LRC=(T*8+E*4+D) ^ (a*16+M) ^ F} [T@:0..1=0,E:0..1=0,D:0..3,a:0..1=0,F:0..15,M:0..7] This can be used by my program IrScrutinizer (http://harctoolbox.org/IrScrutinizer.html) to generate the signals for different values of the parameters, or transform to other formats like (raw) Lirc. With some effort, it would probably be possible manually to construct (non-raw) Lirc files too. What do you guys request? > (although I'm sure there are more and perhaps > better options out there). You can write a microprocessor program for your favorite microprocessor, an Arduino or such. But there is hardly a more compact or elegant representation than the one above, or another way to generate the codes without writing a program. Greetonations, Bengt |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-21 11:32:43
|
I tried to use code as below to implement this protocol, is this no problems and possible? // ---- PF functions ---- typedef enum { false = 0, true = 1 } Bool; //For convenience in pf_ functions: add extra address bit to mode if needed #define PF_EXTRA_ADDR(mode, extra) (extra ? (mode) | 8 : (mode)) Bool bRepeatSend = true; int toggle[8] = {0,0,0,0,0,0,0,0}; //There are 1,000 milliseconds in 1 second; 1,000 microseconds in 1 millisecond; // 1s = 1000ms // 1ms = 1000µs // 1µs = 1000ns //microsecond pause void microsecond_pause(unsigned int us) { struct timespec req = {0, us * 1000}; nanosleep(&req, NULL); } //start bit pause for 1014µs void start_pause() { microsecond_pause(1184); } //high bit pause for 546µs void high_pause() { microsecond_pause(711); } //low bit pause for 260µs void low_pause() { microsecond_pause(421); } //ir pause 156µs void tx_pause() { microsecond_pause(156); } //ir pause 78µs void mark_pause() { microsecond_pause(78); } void message_pause(int channel, int count) { unsigned char a = 0; if (count == 0) { a = 4 - channel + 1; } else if (count == 1 || count == 2) { a = 5; } else if (count == 3 || count == 4) { a = 5 + (channel + 1) * 2; } microsecond_pause(a * 16); // microsecond_pause(a * 16 * 1000); } void ir_mark(struct lnptower *tower) { // int i; // asm("ORC #128, ccr"); // clear interrupts // S_CR = S_CR & 0xCF; // clear TE and RE bits // set direction on the P50 (TxD) to out // PORT5_DDR = 5; for(int i = 0; i < 6; i++){ // PORT5 = 0; SetCommBreak(tower->fd); mark_pause(); // PORT5 = 1; ClearCommBreak(tower->fd); mark_pause(); } // S_CR = S_CR | 0x30; // set again TE and RE bits // asm("ANDC #127, ccr"); // set interrupts } void ir_send(struct lnptower *tower, int code1, int code2) { // int x;// = 128;//128 2048 16384 32768 // sem_wait(&tx_sem); // asm("ORC #128, ccr"); // clear interrupts // S_CR = S_CR & 0xCF; // clear TE and RE bits // set direction on the P50 (TxD) to out // PORT5_DDR = 5; //start // PORT5 = 0; SetCommBreak(tower->fd); tx_pause(); // PORT5 = 1; ClearCommBreak(tower->fd); start_pause(); int x = 128; while (x) { // PORT5 = 0; SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); // PORT5 = 1; if (code1 & x) { //high bit high_pause(); } else { //low bit low_pause(); } x >>= 1; //next bit } x = 128; while (x) { // PORT5 = 0; SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); // PORT5 = 1; if (code2 & x) { // high bit high_pause(); } else { //low bit low_pause(); } x >>= 1; //next bit } // PORT5 = 0; SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); // PORT5 = 1; start_pause(); //stop // S_CR = S_CR | 0x30; // set again TE and RE bits // asm("ANDC #127, ccr"); // set interrupts // sem_post(&tx_sem); //sometimes if we send 2 packets in a row to the same channel one of them gets ignored //this little pause fixes that //msleep(10); } void pf_send(struct lnptower *tower, int channel, int code1, int code2) { int i, loop = bRepeatSend ? 5 : 1; ir_mark(tower); for(i = 0; i < loop; i++) { message_pause(channel, i); ir_send(tower, code1, code2); } } void pf_single_output_pwm(struct lnptower *tower, int channel, int output, int pwm, Bool extra_address) { int nib1, nib2, nib3, nib4; unsigned char ix = extra_address * 4 + channel; //set nibs nib1 = toggle[ix] | channel; nib2 = PF_EXTRA_ADDR(PF_SINGLE_OUTPUT_PWM, extra_address) | output; nib3 = pwm; nib4 = 0xf ^ nib1 ^ nib2 ^ nib3; // pf_send(pf_toggle[ix] | channel, output | PF_EXADDR(PF_SINGLE_OUTPUT_PWM), pwm); // pf_send(c1, c2, c3); // unsigned code = (c1 ^ c2 ^ c3 ^ 0xf) | ((c1 << 8 | c3) << 4) | (c2 << 8); pf_send(tower, channel, nib1 << 4 | nib2, nib3 << 4 | nib4); toggle[ix] ^= 8; } |
From: Alec L. <lea...@gm...> - 2014-05-21 13:09:56
|
On 2014-05-21 13:37, Zhengrong Zang wrote: > I want to send IR on cygwin by serial port to IR tower, is this possible? > Well, again, it depends: If you have a device (i.e ., a remote) which can generate the data you can use irrecord to record it; once this is done you irsend to send it. However, being on windows you are probably better off using winLIRC [1] instead of cygwin + lirc. If you don't have a remote the best way is probably the IrScrutinizer tool provided by Harctoolbox, see Bengt's post [2]. Note that this is a java program, so cygwin is not really the tool here either. --alec PS: Please don't top-post. DS [1] http://winlirc.sourceforge.net/ [2] http://sourceforge.net/p/lirc/mailman/message/32361714/ |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-21 13:47:08
|
Thanks for your message. I am installed winlirc and tried to run irrecord.exe, but I don't know what config file I should use. In fact, I have a lego RCX IR tower connect to serial port USB adapter to my PC, then my RCX can send lego PF protocol IR signals, what config file do I h E to use for those device? Can you help me? Sent from my iPad Mini Please try "Market Event" 请试用≪市场日程表≫ 請試用≪市場日程表≫ ≪市場予定≫を試してください http://AppStore.com/MarketEvent/ 2014/05/21 22:09、Alec Leamas <lea...@gm...> のメッセージ: > On 2014-05-21 13:37, Zhengrong Zang wrote: >> I want to send IR on cygwin by serial port to IR tower, is this possible? > > Well, again, it depends: If you have a device (i.e ., a remote) which can generate the data you can use irrecord to record it; once this is done you irsend to send it. However, being on windows you are probably better off using winLIRC [1] instead of cygwin + lirc. > > If you don't have a remote the best way is probably the IrScrutinizer tool provided by Harctoolbox, see Bengt's post [2]. Note that this is a java program, so cygwin is not really the tool here either. > > --alec > > PS: Please don't top-post. DS > > > [1] http://winlirc.sourceforge.net/ > [2] http://sourceforge.net/p/lirc/mailman/message/32361714/ |
From: Alec L. <lea...@gm...> - 2014-05-21 14:02:21
|
On 05/21/2014 03:46 PM, Zhengrong Zang wrote: > send lego PF protocol IR signals, what config file do I h > E to use for those device? Can you help me? No, Mostly because you are using winLIRC, and thus should talk to them. But also since you insist on top-posting, making it needlessly hard to help you in a way useful also for others. --alec |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-21 14:32:51
|
2014/05/21 23:02、Alec Leamas <lea...@gm...> のメッセージ: > On 05/21/2014 03:46 PM, Zhengrong Zang wrote: >> send lego PF protocol IR signals, what config file do I h >> E to use for those device? Can you help me? > No, Mostly because you are using winLIRC, and thus should talk to them. But also since you insist on top-posting, making it needlessly hard to help you in a way useful also for others. > > --alec I want to use code as below to implement that lego PF protocol, is this possible? //microsecond pause void microsecond_pause(unsigned int us) { struct timespec req = {0, us * 1000}; nanosleep(&req, NULL); } //start bit pause for 1014µs void start_pause() { microsecond_pause(1014); } //high bit pause for 546µs void high_pause() { microsecond_pause(546); } //low bit pause for 260µs void low_pause() { microsecond_pause(260); } //ir pause 156µs void tx_pause() { microsecond_pause(156); } //ir pause 78µs void mark_pause() { microsecond_pause(78); } |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-21 14:36:09
|
2014/05/21 23:02、Alec Leamas <lea...@gm...> のメッセジ: > On 05/21/2014 03:46 PM, Zhengrong Zang wrote: >> send lego PF protocol IR signals, what config file do I h >> E to use for those device? Can you help me? > No, Mostly because you are using winLIRC, and thus should talk to them. But also since you insist on top-posting, making it needlessly hard to help you in a way useful also for others. > > --alec Sorry that I sent split because I told size is over 20K if put all message in one reply:( (Continue) void message_pause(int channel, int count) { unsigned char a = 0; if (count == 0) { a = 4 - channel + 1; } else if (count == 1 || count == 2) { a = 5; } else if (count == 3 || count == 4) { a = 5 + (channel + 1) * 2; } microsecond_pause(a * 16); // microsecond_pause(a * 16 * 1000); } void ir_mark(struct lnptower *tower) { // set direction on the P50 (TxD) to out for(int i = 0; i < 6; i++){ SetCommBreak(tower->fd); mark_pause(); ClearCommBreak(tower->fd); mark_pause(); } } void ir_send(struct lnptower *tower, int code1, int code2) { //start SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); start_pause(); int x = 128; while (x) { SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); if (code1 & x) { //high bit high_pause(); } else { //low bit low_pause(); } x >>= 1; //next bit } x = 128; while (x) { SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); if (code2 & x) { // high bit high_pause(); } else { //low bit low_pause(); } x >>= 1; //next bit } SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); start_pause(); //stop } |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-21 14:28:27
|
2014/05/21 23:02、Alec Leamas <lea...@gm...> のメッセージ: > On 05/21/2014 03:46 PM, Zhengrong Zang wrote: >> send lego PF protocol IR signals, what config file do I h >> E to use for those device? Can you help me? > No, Mostly because you are using winLIRC, and thus should talk to them. But also since you insist on top-posting, making it needlessly hard to help you in a way useful also for others. > > --alec Sorry for my top posting! I want to use code as below to implement that lego PF protocol, is this possible? //microsecond pause void microsecond_pause(unsigned int us) { struct timespec req = {0, us * 1000}; nanosleep(&req, NULL); } //start bit pause for 1014µs void start_pause() { microsecond_pause(1184); } //high bit pause for 546µs void high_pause() { microsecond_pause(711); } //low bit pause for 260µs void low_pause() { microsecond_pause(421); } //ir pause 156µs void tx_pause() { microsecond_pause(156); } //ir pause 78µs void mark_pause() { microsecond_pause(78); } void message_pause(int channel, int count) { unsigned char a = 0; if (count == 0) { a = 4 - channel + 1; } else if (count == 1 || count == 2) { a = 5; } else if (count == 3 || count == 4) { a = 5 + (channel + 1) * 2; } microsecond_pause(a * 16); // microsecond_pause(a * 16 * 1000); } void ir_mark(struct lnptower *tower) { // set direction on the P50 (TxD) to out for(int i = 0; i < 6; i++){ SetCommBreak(tower->fd); mark_pause(); ClearCommBreak(tower->fd); mark_pause(); } } void ir_send(struct lnptower *tower, int code1, int code2) { //start SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); start_pause(); int x = 128; while (x) { SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); if (code1 & x) { //high bit high_pause(); } else { //low bit low_pause(); } x >>= 1; //next bit } x = 128; while (x) { SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); if (code2 & x) { // high bit high_pause(); } else { //low bit low_pause(); } x >>= 1; //next bit } SetCommBreak(tower->fd); tx_pause(); ClearCommBreak(tower->fd); start_pause(); //stop } void pf_send(struct lnptower *tower, int channel, int code1, int code2) { int i, loop = bRepeatSend ? 5 : 1; ir_mark(tower); for(i = 0; i < loop; i++) { message_pause(channel, i); ir_send(tower, code1, code2); } } |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-21 14:37:43
|
2014/05/21 23:02、Alec Leamas <lea...@gm...> のメッセジ: > On 05/21/2014 03:46 PM, Zhengrong Zang wrote: >> send lego PF protocol IR signals, what config file do I h >> E to use for those device? Can you help me? > No, Mostly because you are using winLIRC, and thus should talk to them. But also since you insist on top-posting, making it needlessly hard to help you in a way useful also for others. > > --alec (Continue) void pf_send(struct lnptower *tower, int channel, int code1, int code2) { int i, loop = bRepeatSend ? 5 : 1; ir_mark(tower); for(i = 0; i < loop; i++) { message_pause(channel, i); ir_send(tower, code1, code2); } } |
From: Alec L. <lea...@gm...> - 2014-05-22 06:03:20
|
On 2014-05-21 16:37, Zhengrong Zang wrote: >> On 05/21/2014 03:46 PM, Zhengrong Zang wrote: >>> send lego PF protocol IR signals, what config file do I h >>> E to use for those device? Can you help me? > (Continue) > [cut] Well, it should actually be possible to construct a lircd.conf file without using irrecord. Specifically: - In order to use irsend to send codes you need a lircd.conf file. - The format of this file is described at http://winlirc.sourceforge.net/technicaldetails.html - Start bit is header. - Bits are encoded with zero/one, this is a SPACE_ENC protocol (i. e., flags = SPACE_ENC). - stop bit is trail and gap together, as long as there is no specific repeat behaviour. - You can find a multitude of lircd.conf examples in http://lirc.sourceforge.net/remotes . Most of these are more complicated than your needs, though. - Since you are using the winlirc tools and documentation you should contact them to get help rather than this list if you choose to use this approach. --alec - |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-22 00:53:19
|
2014/05/21 5:38、Bengt Martensson <bu...@be...> のメッセージ: > I read the document, and came up with the translation to the so-called > IRP-notation http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation : > > {38k,1p,msb}<6,-10|6,-21>(6,-39,T:1,E:1,D:2,a:1,M:3,F:4,LRC:4,6,-39,T=1-T) > {LRC=(T*8+E*4+D) ^ (a*16+M) ^ F} > [T@:0..1=0,E:0..1=0,D:0..3,a:0..1=0,F:0..15,M:0..7] > > This can be used by my program IrScrutinizer > (http://harctoolbox.org/IrScrutinizer.html) to generate the signals for > different values of the parameters, or transform to other formats like > (raw) Lirc. Hi Bengt I tried your IrScrutinizer, a Lego RCX IR transmitter/receiver is connected to PC serial port with USB-serial adapter, but I can't configure hardware in your IrScrutinizer, what can I do? > With some effort, it would probably be possible manually to construct > (non-raw) Lirc files too. > > What do you guys request? I want to that transmitter/receiver connected on com port of PC can send IR signal in protocol above, is it possible? |
From: Bengt M. <bu...@be...> - 2014-05-22 20:54:06
|
On 05/22/14 02:53, Zhengrong Zang wrote: > 2014/05/21 5:38、Bengt Martensson <bu...@be... > <mailto:bu...@be...>> のメッセージ: > >> I read the document, and came up with the translation to the so-called >> IRP-notation >> http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation : >> >> {38k,1p,msb}<6,-10|6,-21>(6,-39,T:1,E:1,D:2,a:1,M:3,F:4,LRC:4,6,-39,T=1-T) >> {LRC=(T*8+E*4+D) ^ (a*16+M) ^ F} >> [T@:0..1=0,E:0..1=0,D:0..3,a:0..1=0,F:0..15,M:0..7] >> >> This can be used by my program IrScrutinizer >> (http://harctoolbox.org/IrScrutinizer.html) to generate the signals for >> different values of the parameters, or transform to other formats like >> (raw) Lirc. > Hi Bengt > > I tried your IrScrutinizer, a Lego RCX IR transmitter/receiver > <http://iguanaworks.net/ir/> is connected to PC serial port with > USB-serial adapter, but I can't configure hardware in your > IrScrutinizer, what can I do? Huh? What has the Iguana to do with "Lego RCX IR ..."? > >> With some effort, it would probably be possible manually to construct >> (non-raw) Lirc files too. >> >> What do you guys request? > I want to that transmitter/receiver > <http://iguanaworks.net/ir/> connected on com port of PC can send IR > signal in protocol above, is it possible? Not all IR hardware is supported directly in IrScrutinizer. However, the Iguana is supported indirectly through LIRC with this patch: http://www.harctoolbox.org/lirc_ccf.html Feel free to request that the WinLIRC-ers support this nice feature. It is probably a better idea to generate a lirc.conf with IrScrutinizer, using the IRP-notation given previously. In some more detail: add the lines [protocol] name=lego irp={38k,1p,msb}<6,-10|6,-21> \ (6,-39,T:1,E:1,D:2,a:1,M:3,F:4,LRC:4,6,-39,T=1-T) \ {LRC=(T*8+E*4+D) ^ (a*16+M) ^ F} \ [T@:0..1=0,E:0..1=0,D:0..3,a:0..1=0,F:0..15,M:0..7] to the end of IrpProtocols.ini. You can then generate a lirc.conf with all the signals your require, and feed it to your WinLirc. In some detail: go to the "Export" pane, and select "LIRC" for export format. Then go to the "Generate" pane, select "lego" for protocol, fill in * as D and F, select * for T, type E=* a=* M=* in "Additional parameters", then press "Export". You will then generate a lirc.conf containing all conceivable (4096) signals, in the LIRC raw format. This can be feed to LIRC or WinLIRC, which should both work -- it is a fairly simple protocol. With some a priori knowledge, you may restrict you signals to less than 4096, e.g. by capturing a real signal from your remote, using e.g. IrScrutinizer and supported capturing hardware. |
From: Zhengrong Z. <zhe...@gm...> - 2014-05-22 22:46:23
|
2014/05/23 5:53、Bengt Martensson <bu...@be...> のメッセージ: > On 05/22/14 02:53, Zhengrong Zang wrote: >> 2014/05/21 5:38、Bengt Martensson <bu...@be... >> <mailto:bu...@be...>> のメッセージ: >> >>> I read the document, and came up with the translation to the so-called >>> IRP-notation >>> http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation : >>> >>> {38k,1p,msb}<6,-10|6,-21>(6,-39,T:1,E:1,D:2,a:1,M:3,F:4,LRC:4,6,-39,T=1-T) >>> {LRC=(T*8+E*4+D) ^ (a*16+M) ^ F} >>> [T@:0..1=0,E:0..1=0,D:0..3,a:0..1=0,F:0..15,M:0..7] >>> >>> This can be used by my program IrScrutinizer >>> (http://harctoolbox.org/IrScrutinizer.html) to generate the signals for >>> different values of the parameters, or transform to other formats like >>> (raw) Lirc. >> Hi Bengt >> >> I tried your IrScrutinizer, a Lego RCX IR transmitter/receiver >> <http://iguanaworks.net/ir/> is connected to PC serial port with >> USB-serial adapter, but I can't configure hardware in your >> IrScrutinizer, what can I do? > > Huh? What has the Iguana to do with "Lego RCX IR ..."? I am very sorry that I copy in miss, my lego IR tower ishere http://www.robotika.sk/mains.php?page=/projects/robsapien/ , not Iguana! >>> With some effort, it would probably be possible manually to construct >>> (non-raw) Lirc files too. >>> >>> What do you guys request? >> I want to that transmitter/receiver >> <http://iguanaworks.net/ir/> connected on com port of PC can send IR >> signal in protocol above, is it possible? > > Not all IR hardware is supported directly in IrScrutinizer. However, the > Iguana is supported indirectly through LIRC with this patch: > http://www.harctoolbox.org/lirc_ccf.html Feel free to request that the > WinLIRC-ers support this nice feature. In this case, what hardware can be used in your IrScrutinizer? > It is probably a better idea to generate a lirc.conf with IrScrutinizer, > using the IRP-notation given previously. In some more detail: add the lines > > > [protocol] > name=lego > irp={38k,1p,msb}<6,-10|6,-21> \ > (6,-39,T:1,E:1,D:2,a:1,M:3,F:4,LRC:4,6,-39,T=1-T) \ > {LRC=(T*8+E*4+D) ^ (a*16+M) ^ F} \ > [T@:0..1=0,E:0..1=0,D:0..3,a:0..1=0,F:0..15,M:0..7] > > to the end of IrpProtocols.ini. You can then generate a lirc.conf with > all the signals your require, and feed it to your WinLirc. In some > detail: go to the "Export" pane, and select "LIRC" for export format. > Then go to the "Generate" pane, select "lego" for protocol, fill in * as > D and F, select * for T, type > > E=* a=* M=* > > in "Additional parameters", then press "Export". You will then generate > a lirc.conf containing all conceivable (4096) signals, in the LIRC raw > format. This can be feed to LIRC or WinLIRC, which should both work -- > it is a fairly simple protocol. > > With some a priori knowledge, you may restrict you signals to less than > 4096, e.g. by capturing a real signal from your remote, using e.g. > IrScrutinizer and supported capturing hardware. I will try this tonight. |