Zdravim,
delam na jednom programu v C, ve kterem potrebuji posilat AT prikazy pres com port na mobil. hledal jsem cely den ale nic nenasel. Je na to nejaka knihovna, nebo pres nejaky terminal ale jak do nej dostat prikazy z programu? Prosim vas o pomoc.
Diky moc
Fórum › C / C++
Com komunikace v C
jaky system?
ve win je treba tady jeden prospevek ... http://www.control.com/1026187785/index_html
To KIIV : jj je to windows... zalibil se mi tam tenhle kod
#include <bios.h>
#include <conio.h>
#define COM1 0
#define DATA_READY 0x100
#define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00)
int main(void)
{
int in, out, status;
bioscom(0, SETTINGS, COM1); /*initialize the port*/
cprintf("Data sent to you: ");
while (1)
{
status = bioscom(3, 0, COM1); /*wait until get a data*/
if (status & DATA_READY)
if ((out = bioscom(2, 0, COM1) & 0x7F) != 0) /*input a data*/
putch(out);
if (kbhit())
{
if ((in = getch()) == 27) /* ASCII of Esc*/
break;
bioscom(1, in, COM1); /*output a data*/
}
}
return 0;
}
jestli jsem ti dobre pochopil, tak v cyklu posila cisla ascii znaku.Je to tak?jestli jtak mam zase problem. sry s retezci delam poprve takze se zeptam na takovou mozna drobnost. jak prevedu znak na cislo podle ascii
To Bedla : to ze se ti zalibil neznamena ze bude fachat :)
spis sem mel na mysli tento
HANDLE hCom;
COMMTIMEOUTS lpTo;
COMMCONFIG lpCC;
char str_com[10];
unsigned short no_com = 0;
sprintf( str_com, "\\\\.\\COM%d\0", no_com+1);
hCom = CreateFile(str_com,GENERIC_READ|GENERIC_WRITE,0,NULL,
OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
GetCommState( hCom, &lpCC.dcb);
/* Initialisation des parametres par defaut */
lpCC.dcb.BaudRate = CBR_9600;
lpCC.dcb.ByteSize = 8;
lpCC.dcb.StopBits = ONESTOPBIT;
lpCC.dcb.Parity = NOPARITY;
lpCC.dcb.fDtrControl = DTR_CONTROL_DISABLE;
lpCC.dcb.fRtsControl = RTS_CONTROL_DISABLE;
SetCommState( hCom, &lpCC.dcb );
GetCommTimeouts(hCom,&lpTo);
lpTo.ReadIntervalTimeout = 0;
lpTo.ReadTotalTimeoutMultiplier = 10;
lpTo.ReadTotalTimeoutConstant = 10;
lpTo.WriteTotalTimeoutMultiplier = 10;
lpTo.WriteTotalTimeoutConstant = 100;
SetCommTimeouts(hCom,&lpTo);
SetupComm(hCom,2048,2048);
To close the port :
CloseHandle(hCom);
To monitor communications events :
SetCommMask(hCom, dwEvtMask );
dwEvtMask is logical or with :
EV_BREAK, EV_CTS, EV_DSR, EV_ERR, EV_RING, EV_RLSD , EV_RXCHAR, EV_RXFLAG, EV_TXEMPTY values
and used WaitCommEvent function
BOOL WaitCommEvent(
HANDLE hFile,
LPDWORD lpEvtMask,
LPOVERLAPPED lpOverlapped
);
diky vsem za odpovedi
To KIIV : no ten jsem zkousel ale hazelo to chyby,, ale kdyz na to koukam tak jsem tam nemel include. co vsechno musim naincludovat aby to jelo? takhle slozity program delam poprve, tak narazim na spoustu problemu
no to v turbo urcite nepude... turbo je snad jeste pro dos... kazdopadne v jakymkoliv systemu jako NT, XP, a novejsi se dosem na porty primo nedostanes...
to chce testnout aspon devcpp nebo tak
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Komunikace — založil Zelenáč
Seriova komunikace — založil fatalwir
Komunikace s SQL — založil DragonBehemont
Komunikace posíti — založil vojtech
C++ komunikace s Excelem — založil Luboš
Moderátoři diskuze