Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- Gurulunk, WAZE?!
- gban: Ingyen kellene, de tegnapra
- GoodSpeed: Én és a Battlefield 6
- Brogyi: CTEK akkumulátor töltő és másolatai
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
- Asus ROG FLOW X13 x360 Érintős MINI Gamer laptop -50% Ryzen 9 6900HS 16GB/1TB RTX 3050Ti 4GB FHD+
- DJI FPV Fly More Combo drón szett - CARBON
- Eladó RedMagic 9 pro (16/512 GB)
- Gamer PC - R7 5800X, RTX 3070 és 16gb RAM + GARANCIA
- Samsung Galaxy S25 / FE / 25 Ultra / S25 Edge / Flip 7 - 256GB / 512GB - Bontatlan - 2/3 év gari
- iKing.Hu - Apple iPhone 15 Pro Max Black Titanium Titán stílus, 5 optikai zoom 256 GB- Gari
- Bomba ár! HP Elite Dragonfly G1 - i5-8G I 16GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Garancia!
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo ThinkPad P15 Gen 1 Intel i7-10875H 32GB 512GB Nvidia Quadro RTX 3000 1 év garancia
- LG 77G4 - 77" OLED evo - 4K 144Hz 0.1ms - MLA - 3000 Nits - NVIDIA G-Sync - AMD FreeSync - HDMI 2.1
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest

