Hello,
I need to send WinLirc serial output via RF.
I'm trying to use the "hardware carrier" option but whenever enabled what I get out from the tx of the serial is just a regular hi-low 3ms sequence instead of the regular waveform just without the carrier.
You can have a look at the snapshots in the attachments
I tried older versions to see if anything changed and up to WinLirc 0.6.5 it's always the same behaviour.
Might it be a bug?
I'd like to learn more about WinLirc, in which part of the code should I look for the hardware carrier configuration?
Cheers,
V.
PS It would be great to be able to activate/desactivate hardware carrier from the command line
like in Pronto RAW file format where a bit indicates the carrier modulation ON/OFF.
I found the sending functions in the remote.cpp file.
Being a newbie in C programming it's not that easy but one thing I'd like is this one:
instead of assuming freq 0 = 38Khz, freq 0 should be "hardware carrier" unmodulated transmission.
This would make much more sense in my opinion...
The source for for the latest winlirc, is almost exactly the same as 0.6.5. Just all the code has been wrapped in a plugin. I'll try and get Leg0 to look at this. Honestly without looking I am not even sure what the hardware carrier option does :) Most of that code was written 15 years ago !
What should the signal look like for h/w carrier ? Just a solid line ?
Ian, the HW carrier should look a lot like the SW carrier image, except all the tiny pulses that look like solid rectangles, would be grouped together into bigger ones and instead of solid rectangles you'd see the outline of these rectangles.
After a quick look, I think the problem is in trunk/DLL/Serial/Transmit.cpp. function send_pulse_hard. Will verify in the evening.
That's great,
thanks both of you for the prompt replies!
I had a quick google, and apparently h/w carrier is what the demodulated output from a TSOP would look like ? Is that correct ? So instead of cycling at 38khz, it would be just on/off ?
correct.
I just took a snapshot a few days ago of a modulated/unmodulated waveform...
Does the problem persist when you use DTR instead of TX?
No only with TX. DTR Hardware carrier settings seem to be OK.
Is this problem with TX HW carrier related to
SetCommBreak(tPort),ClearCommBreak(tPort) functions?
Are they setting the TX pin to 1 or 0 the same way DTR with
EscapeCommFunction(tPort,SETDTR),EscapeCommFunction(tPort,CLRDTR) functions?
Cheers,
V.
Yes, SetCommBreak and ClearCommBreak should set set TX pin state to 1 or 0 similar to EscapeCommFunction does for DTR.
I hope you can work around this problem by using DTR until the problem with TX gets fixed.
Yes I'm using DTR now for my experiments, thanks.
is the SPECIAL_TRANSMITTER flag only used in winlirc or is it also available in the linux version? Is the hardware carrier available also for linux or not?
I'm not sure about what "(Not supported by LIRC)" means.
Thanks and have a nice week-end.
Hello, any new progress about the TX hardware carrier option?
I wonder if you had the time to investigate further in this issue...
I take the advantage also to ask what are the improvements in winlirc compared to the linux version of lirc. I couldn't find a way on linux to use the hardware carrier option with DTR and I wonder if it's my fault or the linux version has no option for this.
Thanks and have a nice weekend,
V.