- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- sziku69: Fűzzük össze a szavakat :)
- zebra_hun: Hűthető-e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Luck Dragon: Asszociációs játék. :)
- bitpork: MOD Júni 28- Augusztus 2- szombat jelen állás szerint.
- bambano: Bambanő háza tája
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- weiss: Pant* rant
- Klaus Duran: 2025 dude
Aktív témák
-
ftc
nagyúr
Kis segitésg kellene:Van egy progi ami 2 gép közötti soros komunikáciot biztositja .Ha hyperterminálon van az egyik gép akkor hülyeségeket ir ki.Beirom az egész progit,ha valaki tud segitsen.
#include<stdio.h>
#include<windows.h>
#include<conio.h>
void menu(HANDLE hPort);
int chat(HANDLE hPort);
void set_port(HANDLE hPort);
void wiev(HANDLE hPort);
void time(HANDLE hPort);
void vysielanie(HANDLE hPort);
void primanie(HANDLE hPort);
bool IsKeyPressed(int virtualKey);
void main()
{
HANDLE hPort;
hPort = CreateFile(''COM1:'', GENERIC_READ | GENERIC_WRITE, 0,NULL,OPEN_EXISTING, 0, NULL);
if ( hPort == INVALID_HANDLE_VALUE )
printf(''Port sa neda otvorit\n'');
else
printf(''Port je otvoreny\n'');
time(hPort);
menu(hPort);
CloseHandle(hPort);
}
void menu(HANDLE hPort)
{
printf(''Manual: 1 - Chat 2 - Set port 3 - Actual set port 4 - Quit'');
while(1)
{
printf(''\n\nVolba?'');
switch (getch())
{
case '1':
chat(hPort); break;
case '2':
set_port(hPort); break;
case '3':
wiev(hPort); break;
case '4':
goto END; break;
default: printf(''\nZla volba!!'');break;
}
}
printf(''Koniec'');
END:;
}
void time(HANDLE hPort)
{
COMMTIMEOUTS timeouts;
timeouts.ReadIntervalTimeout = 20;
timeouts.ReadTotalTimeoutMultiplier = 10;
timeouts.ReadTotalTimeoutConstant = 100;
timeouts.WriteTotalTimeoutMultiplier = 10;
timeouts.ReadTotalTimeoutConstant = 100;
if (!SetCommTimeouts(hPort,&timeouts))
printf(''Chyba: Timeouty nenastavene.\n\n'');
// a asi exit...
else
printf(''OK,Timeouty nastavene \n\n'');
}
void set_port(HANDLE hPort)
{
DCB PortDCB;
PortDCB.DCBlength = sizeof(DCB);
GetCommState(hPort,&PortDCB);
printf(''\n\nSet port:'');
printf(''\nZadaj BaudRate: '');
scanf(''%d'',&PortDCB.BaudRate);
printf(''Zadaj ByteSize: '');
scanf(''%d'',&PortDCB.ByteSize);
printf(''Zadaj StopBits: '');
scanf(''%d'',&PortDCB.StopBits);
printf(''Zadaj Parity: '');
scanf(''%d'',&PortDCB.Parity);
if(!SetCommState(hPort,&PortDCB))
printf(''\nPort sa neda nakonfigurovat'');
else printf(''\nPort je nakonfigurovany\n'');
}
void wiev(HANDLE hPort)
{
DCB PortDCB;
PortDCB.DCBlength = sizeof(PortDCB);
GetCommState(hPort,&PortDCB);
printf(''\n\nActual set port:'');
printf(''\nBaudrate %d'',PortDCB.BaudRate);
printf(''\nByteSize %d'',PortDCB.ByteSize);
printf(''\nStopBits %d'',PortDCB.StopBits);
printf(''\nParity %d'',PortDCB.Parity);
printf(''\n'');
}
int chat(HANDLE hPort)
{
printf(''\n\nChat:\n'');
unsigned char Data;
PurgeComm(hPort,PURGE_TXCLEAR | PURGE_RXCLEAR);
DWORD d;
while(1)
{
Data=0;
ReadFile(hPort,&Data,1,&d,NULL);
if(Data==0 && IsKeyPressed(VK_SHIFT))
vysielanie(hPort);
if(Data!=0)
primanie(hPort);
//Data=0;
if (IsKeyPressed(VK_ESCAPE)) // Klavesa VK_ESCAPE konci program
{
printf(''Escape!! \n'');
getch();
return(1);
}
}
return(1);
}
void vysielanie(HANDLE hPort)
{
printf(''\nVysielas:\n'');
DWORD i=0,b=0;
DWORD pocet=0;
unsigned char posielam='a';
char a[40];
gets(a);
b=strlen(a);
WriteFile(hPort,&posielam,1, &pocet/*smernik*/,NULL);
Sleep(9);
while(i<(b+1))
{
posielam=a;
WriteFile(hPort,&posielam,1, &pocet/*smernik*/,NULL);
i++;
if( pocet != 1 ) printf(''\nSprava neodoslana!!'');
pocet=0;
}
}
void primanie(HANDLE hPort)
{
printf(''\nPrimam:\n'');
DWORD Pocet=0; // Počet prijatých dát
unsigned char Data,a[40]; // Sem ulož prijatý znak
DWORD i=0,j=0;
PurgeComm(hPort,PURGE_TXCLEAR | PURGE_RXCLEAR);
while(a[j]!='\0')
{
ReadFile(
hPort, // Handle portu, z ktorého čítame
&Data, // Pointer na buffer, kam ukladáme prijaté dáta
1, // Počet bytov, na ktoré čakáme
&Pocet, // Pointer na skutočný počet prijatých dát
NULL); // Musí byť NULL
// Funkcia ReadFile tu teraz čaká, až kým niečo
// nepríde, ale môže aj skončiť bez zachyteného znaku,
// ak medzitým vypršia timeouty.
a=Data;
a[i+1]='\0';
i++;
j=i-1;
printf(''%c'',Data);
if( Pocet != Data ) // Ak počet prenesených dát nesúhlasí
printf(''\n Chyba: Sprava neprisla!!'');
Pocet=0;
}
printf(''\n'');
}
/* ************************************************************************** */
/* */
/* Funkcia IsKeyPressed(int virtualKey) */
/* Je prave stlacena klavesa virtualKey? 0 nie, 1 ano */
/* */
/* ************************************************************************** */
bool IsKeyPressed(int virtualKey)
{
return ((GetAsyncKeyState(virtualKey)&0x8000)!=0?true:false);
}
Aktív témák
- Iszonyatos mennyiségű hulladékkal járhat a Windows 10 terméktámogatásának vége
- Android alkalmazások - szoftver kibeszélő topik
- Építő/felújító topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- CASIO órák kedvelők topicja!
- eBay-es kütyük kis pénzért
- Hobby elektronika
- Kertészet, mezőgazdaság topik
- Steam topic
- ASZTALI GÉP / ALKATRÉSZ beárazás
- További aktív témák...
- Steam, EA, Ubisoft és GoG játékkulcsok, illetve Game Pass kedvező áron, egyenesen a kiadóktól!
- Csere-Beszámítás! Prémium vizhűtéses számítógép! I9 11900K / RTX 3090 / 64GB DDR4 / 1TB SSD
- Bomba ár! Lenovo ThinkPad X280 - i5-G8 I 8GB I 256GB SSD I 12,5" FHD I HDMI I Cam I W10 I Gari!
- 134 - Lenovo Legion Pro 7 (16IRX8H) - Intel Core i9-13900HX, RTX 4090
- AKCIÓ! Intel Core i7 8700K 6 mag 12 szál processzor garanciával hibátlan működéssel
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest