NT-ДОСТЪП ДО ПОРТОВЕ
15 отговора
671 прегледа
Re: NT-ДОСТЪП ДО ПОРТОВЕ
Един от вариантите е да си напишеш driver. Друг е да ползваш вече написан (Например виж тук: [линк] )
...and there shall be no more death,neither sorrow...for the former things are passed away
...and there shall be no more death,neither sorrow...for the former things are passed away
Малко по разширено
int ComPort::OpenComPort(char*ComName,int Sp,int Prot)
{
COMMCONFIG *pComCfg;
Speed=Sp;
Protocol=Prot;
BYTE bComCfg[1024];
COMMTIMEOUTS CommTimeOuts;
hCom=CreateFile( ComName, GENERIC_READ | GENERIC_WRITE,NULL,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL );
if(hCom==INVALID_HANDLE_VALUE){
return -1;}
pComCfg=(COMMCONFIG*)bComCfg;
pComCfg->dcb.DCBlength=sizeof(DCB);
pComCfg->dwSize=sizeof(bComCfg);
GetCommState(hCom,&pComCfg->dcb);
if(!Speed){//User will directly setup COM port
if(!CommConfigDialog(ComName,Parent,pComCfg))
{
if(hCom)
CloseHandle(hCom);
hCom=0;
return -2;}
if(pComCfg->dcb.fRtsControl==2)Protocol=ptHard;
else if(pComCfg->dcb.fOutX)Protocol=ptSoft;
else Protocol=ptNone;
}
else{//8 bits, no parity, 1 stop bit - only different protocols
pComCfg->dcb.DCBlength = 28;
pComCfg->dcb.BaudRate = Speed;
pComCfg->dcb.fBinary = 1 ;
pComCfg->dcb.fParity = 0 ;
pComCfg->dcb.fDtrControl = 1 ;
pComCfg->dcb.fOutxDsrFlow = 0 ;
pComCfg->dcb.fDsrSensitivity = 0 ;
pComCfg->dcb.fTXContinueOnXoff= 0 ;
SetDCBProtocol(&pComCfg->dcb,Protocol);//Difference according to different protocols
pComCfg->dcb.fErrorChar = 0 ;
pComCfg->dcb.fNull = 0 ;
pComCfg->dcb.fAbortOnError = 0 ;
pComCfg->dcb.fDummy2 = 0 ;
pComCfg->dcb.XonLim = 2048 ;
pComCfg->dcb.XoffLim = 512 ;
pComCfg->dcb.ByteSize = '\x08';
pComCfg->dcb.Parity = '\0' ;
pComCfg->dcb.StopBits = '\0' ;
pComCfg->dcb.XonChar = '\x11' ;
pComCfg->dcb.XoffChar = '\x13';
pComCfg->dcb.ErrorChar = '\0' ;
pComCfg->dcb.EofChar = '\0' ;
pComCfg->dcb.EvtChar = '\0';
pComCfg->dcb.wReserved1 = 0 ;
}
ShowDCB(pComCfg->dcb);
GetLastError();
if(!SetCommState(hCom,&pComCfg->dcb))
return -3;
CommTimeOuts.ReadIntervalTimeout = 1;
CommTimeOuts.ReadTotalTimeoutMultiplier =4*CBR_115200/pComCfg->dcb.BaudRate;
CommTimeOuts.ReadTotalTimeoutConstant = 1;
CommTimeOuts.WriteTotalTimeoutMultiplier = 4*CBR_115200/pComCfg->dcb.BaudRate;
CommTimeOuts.WriteTotalTimeoutConstant = 1;
if(!SetCommTimeouts(hCom,&CommTimeOuts))
return -4;
SetupComm(hCom,2048,2048);
IsRunning=1;
return 0;//Succsess
}
Bеer? Mоre?
Плацебото
Re: Малко по разширено
... така .
Аз код не разбирам ( т. е. пиша всичко на делфи )
Писах едно нещо на делфи 5, с виндоус98СЕ, ( такъв ми лаптопа
не иска друго освен 98 ) . На 98 си отварям порта и си прая к'вто си
искам. Добре ама неисе, си купих и домашен къмпютер.
Та това което го писах за 98 не работи на хикспи ... Там било си
нещо защитено...
Както в повечето форуми и тук най-полезния съвет който дават е
"питаи некой си Гугала" ...
Та намирам го тоя пич и го питам:
NT access serial port ? отговор окло 240 хил. резултата
WindowXP open COM1 ..... отговор окло 241 хил. резултата
Абе маи и тоя Гугала е програмис колкото мен ...
Та питам Ви:
Как да направя така, че без да пиша в кода :
иф дифаин вин35 тхен на бабати майка и
иф дифаин вин36 ... на маикати бабаи
.......
да отворя порта де?
ендиф
ендиф
Аз код не разбирам ( т. е. пиша всичко на делфи )
Писах едно нещо на делфи 5, с виндоус98СЕ, ( такъв ми лаптопа
не иска друго освен 98 ) . На 98 си отварям порта и си прая к'вто си
искам. Добре ама неисе, си купих и домашен къмпютер.
Та това което го писах за 98 не работи на хикспи ... Там било си
нещо защитено...
Както в повечето форуми и тук най-полезния съвет който дават е
"питаи некой си Гугала" ...
Та намирам го тоя пич и го питам:
NT access serial port ? отговор окло 240 хил. резултата
WindowXP open COM1 ..... отговор окло 241 хил. резултата
Абе маи и тоя Гугала е програмис колкото мен ...
Та питам Ви:
Как да направя така, че без да пиша в кода :
иф дифаин вин35 тхен на бабати майка и
иф дифаин вин36 ... на маикати бабаи
.......
да отворя порта де?
ендиф
ендиф
Re: Малко по разширено
оди питай Гугала за Varian Async32
Am I evil?
Yes I am.
Am I evil?
Yes I am.
Редактирано от Hateras на
Е ти ме утепа
Какво означават двете твърдения заедно? Аз код не разбирам и пиша всичко на делфи?
Делфи - такъв език няма. Има паскал. Има и ИДЕ на Борланд за Паскал което се нарича делфи.
Ако не можеш да разбереш какво означават и какво правят следните няколко реда - толкова по зле за теб.
След което имаш
hCom
И ако искаш да пишеш:
DWORD G;
WriteFile(hCom,pBufW,BytesToWrite,&G,NULL);
И ако искаш да четеш
ReadFile(hCom,pBufR,1,&G,NULL);
А за подробности имаш и едно нещо дето му се вика Help.
И това дето ти го показвам бачка на всякакъв 32 битов Виндовс.
А как да си го препишеш на паскал - нямам идея.
Bеer? Mоre?
Плацебото
Делфи - такъв език няма. Има паскал. Има и ИДЕ на Борланд за Паскал което се нарича делфи.
Ако не можеш да разбереш какво означават и какво правят следните няколко реда - толкова по зле за теб.
COMMCONFIG *pComCfg;
BYTE bComCfg[1024];
COMMTIMEOUTS CommTimeOuts;
HANDLE hCom=CreateFile( "COM1", GENERIC_READ |
GENERIC_WRITE,NULL,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL );
if(hCom==INVALID_HANDLE_VALUE) return -1;
pComCfg=(COMMCONFIG*)bComCfg;
pComCfg->dcb.DCBlength=sizeof(DCB);
pComCfg->dwSize=sizeof(bComCfg);
GetCommState(hCom,&pComCfg->dcb);
CommConfigDialog(ComName,Parent,pComCfg);
След което имаш
hCom
И ако искаш да пишеш:
DWORD G;
WriteFile(hCom,pBufW,BytesToWrite,&G,NULL);
И ако искаш да четеш
ReadFile(hCom,pBufR,1,&G,NULL);
А за подробности имаш и едно нещо дето му се вика Help.
И това дето ти го показвам бачка на всякакъв 32 битов Виндовс.
А как да си го препишеш на паскал - нямам идея.
Bеer? Mоre?
Плацебото
Re: NT-ДОСТЪП ДО ПОРТОВЕ
Можеш да пробваш и TCiaComPort от [линк]
Работи си под Windows XP , има и сорса му , така че ако нещо не ти харесва можеш да си го модифицираш
Работи си под Windows XP , има и сорса му , така че ако нещо не ти харесва можеш да си го модифицираш
Re: Малко по разширено
bira_more, тук, когато поствате сорс код, какво правите, за да се запази той структуриран?
Благодаря!
void main() { main(); }
Благодаря!
void main() { main(); }
Re: Малко по разширено
Хихихи... ма то е хубаво от време на време и да се поразбира (аз също пиша на Delphi).
За мързели като теб може да е подходящо да ползваш ActiveX контролата на М$.
В Delphi средата отиваш на Component/Import ActiveX Control, от списъка избери Microsoft Comm Control 6.0 например и давай мъжествено натам. Ще ти се покаже една красива картинка на телефонче в ActiveX страницата от палитрата с компоненти. И успешно мишкодевелопене...
За мързели като теб може да е подходящо да ползваш ActiveX контролата на М$.
В Delphi средата отиваш на Component/Import ActiveX Control, от списъка избери Microsoft Comm Control 6.0 например и давай мъжествено натам. Ще ти се покаже една красива картинка на телефонче в ActiveX страницата от палитрата с компоненти. И успешно мишкодевелопене...
Tag
Tag-ът е [ pre ] <код> [ /pre ] и се предполага да работи като едноименния HTML tag, но за съжаление е бъгав - след затварянето му текстът продължава да не се пренася на нов ред.
Решението е или да си слагаш сам новите редове, или последното което постваш да е кода.
Освен това можеш да добавяш интервали вътре в tag-овете и така ги правиш обикновен текст.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Решението е или да си слагаш сам новите редове, или последното което постваш да е кода.
Освен това можеш да добавяш интервали вътре в tag-овете и така ги правиш обикновен текст.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Re: Tag
... ползвам Async Professional на [линк]
... порта не може да се отвори все едно, че някой го е отворил преди мен.
... четох за нек'ви драивери или плъгини, но нищо не разбрах.
Имам и една готова програмка за дистанционо и тя не работи под НТ.
Т. Е. ОС НЕ МИ ДАВА ДОСТЪП ДО ПОРТА . ЗАЩО ?
... порта не може да се отвори все едно, че някой го е отворил преди мен.
... четох за нек'ви драивери или плъгини, но нищо не разбрах.
Имам и една готова програмка за дистанционо и тя не работи под НТ.
Т. Е. ОС НЕ МИ ДАВА ДОСТЪП ДО ПОРТА . ЗАЩО ?
Ми четем бре :)))
Имало и тук даже дори нещо наречено тагове - добре описани във въпроси и помощ и други места :)))
Така де от гор висят разни неща - цъкни там и виж.
Щото и мен ме мързи та:
[ b ]
[ / b ]
нещо отсорта ама ако му съобразиш скобите и другите неща вместо b например pre или нещо такова...
Bеer? Mоre?
Плацебото
Така де от гор висят разни неща - цъкни там и виж.
Щото и мен ме мързи та:
[ b ]
[ / b ]
нещо отсорта ама ако му съобразиш скобите и другите неща вместо b например pre или нещо такова...
Bеer? Mоre?
Плацебото