Ik heb een IR receiver gemaakt die perfect werkt met Winlirc.
Nu heb ik ook een zwakke IR transmitter gemaakt, maar die transmit niet dezelfde code als dat ik met mijn receiver heb opgevangen.
De onderstaande code is een voorbeeld wat in mijn config file komt te staan:
Nu komt er er uit mijn remote de volgende code (exclusief de virtual pulse en 1/5 van de code)
Als ik nu mijn eigen IR transmitter gebruik krijg ik zoiets als dit binnen:
Nu zie je dat de Header net mis zit en de one en de zero ook steeds net wat mis zitten. Moet ik nu de virtual pulse (onafhankelijk bij de header/one en de zero, zo aanpassen dat de code goed wordt uitgepoept?
Verder ben ik een C++ noob, terwijl ik toch graag wat wil compilen, dus hier ook een klein vraagje over:
Volgens de readme van winlirc:
transmit.cpp is the source code for transmit.exe
It uses only windows API functions so you should be able to
compile it with any win32 C++ compiler. Just be should to include
the appropriate header file (#include <windows.h>).
To compile transmit.exe with MS VC++, create a "simple win32 application"
then use this code as the main program.
Dus weet iemand wat ik gewoon boven en onder deze .cpp moet gooien om een werkende win32 applicatie te krijgen. (ik hoef geen windows app, alleen een dos boxje, het moet gewoon uitvoeren wat ik wil).
transmit.cpp
Als ik met Visual Studio 2003 een win32 console app aanmaak krijg ik dit:
Kan ik nu de code uit transmitt.cpp gewoon ipv int_main tot einde zetten? Ofzoiets...
ps. Hopelijk staat dit op het juiste subforum, want IR hoort het meeste bij electronica. Naja als het fout staat verplaatst mij graag
Nu heb ik ook een zwakke IR transmitter gemaakt, maar die transmit niet dezelfde code als dat ik met mijn receiver heb opgevangen.
De onderstaande code is een voorbeeld wat in mijn config file komt te staan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| begin remote
name tijmenfinal
bits 14
flags SPACE_ENC
eps 25
aeps 100
header 300 2894
one 300 1691
zero 300 1092
ptrail 300
gap 20647
toggle_bit 0
begin codes
rec1 0x000000000000264E
rec2 0x000000000000264E
zoom 0x000000000000164D
zoomout 0x000000000000364D
end codes
end remote |
Nu komt er er uit mijn remote de volgende code (exclusief de virtual pulse en 1/5 van de code)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| space 504016 space 2891 space 1694 space 1099 space 1098 space 1694 space 1699 space 1096 space 1098 space 1697 space 1097 space 1099 space 1697 space 1696 space 1696 space 1097 |
Als ik nu mijn eigen IR transmitter gebruik krijg ik zoiets als dit binnen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| space 464416 space 2781 space 1894 space 1399 space 1398 space 1894 space 1399 space 1396 space 1898 space 1897 space 1397 space 1399 space 1897 space 1896 space 1896 space 1397 |
Nu zie je dat de Header net mis zit en de one en de zero ook steeds net wat mis zitten. Moet ik nu de virtual pulse (onafhankelijk bij de header/one en de zero, zo aanpassen dat de code goed wordt uitgepoept?
Verder ben ik een C++ noob, terwijl ik toch graag wat wil compilen, dus hier ook een klein vraagje over:
Volgens de readme van winlirc:
transmit.cpp is the source code for transmit.exe
It uses only windows API functions so you should be able to
compile it with any win32 C++ compiler. Just be should to include
the appropriate header file (#include <windows.h>).
To compile transmit.exe with MS VC++, create a "simple win32 application"
then use this code as the main program.
Dus weet iemand wat ik gewoon boven en onder deze .cpp moet gooien om een werkende win32 applicatie te krijgen. (ik hoef geen windows app, alleen een dos boxje, het moet gewoon uitvoeren wat ik wil).
transmit.cpp
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
LRESULT copyDataResult;
HWND pOtherWnd = FindWindow(NULL, "WinLirc");
if (pOtherWnd)
{
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strlen(lpCmdLine);
cpd.lpData = (void*)lpCmdLine;
copyDataResult = SendMessage(pOtherWnd,WM_COPYDATA,(WPARAM)hInstance,(LPARAM)&cpd);
// copyDataResult has value returned by other app
}
else
{
return 1;
}
return 0;
} |
Als ik met Visual Studio 2003 een win32 console app aanmaak krijg ik dit:
code:
1
2
3
4
5
6
7
8
9
10
| // test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
//#include "windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
} |
Kan ik nu de code uit transmitt.cpp gewoon ipv int_main tot einde zetten? Ofzoiets...
ps. Hopelijk staat dit op het juiste subforum, want IR hoort het meeste bij electronica. Naja als het fout staat verplaatst mij graag