ÕâÆª½Ì³ÌC++ EscapeCommFunctionº¯Êý´úÂëʾÀýдµÃºÜʵÓã¬Ï£ÍûÄܰﵽÄú¡£
±¾ÎÄÕûÀí»ã×ÜÁËC++ÖÐEscapeCommFunctionº¯ÊýµÄµäÐÍÓ÷¨´úÂëʾÀý¡£Èç¹ûÄúÕý¿àÓÚÒÔÏÂÎÊÌ⣺C++ EscapeCommFunctionº¯ÊýµÄ¾ßÌåÓ÷¨£¿C++ EscapeCommFunctionÔõôÓã¿C++ EscapeCommFunctionʹÓõÄÀý×Ó£¿ÄÇô¹§Ï²Äú, ÕâÀᆱѡµÄº¯Êý´úÂëʾÀý»òÐí¿ÉÒÔΪÄúÌṩ°ïÖú¡£ ÔÚÏÂÎÄÖÐÒ»¹²Õ¹Ê¾ÁËEscapeCommFunctionº¯ÊýµÄ28¸ö´úÂëʾÀý£¬ÕâЩÀý×ÓĬÈϸù¾ÝÊÜ»¶Ó³Ì¶ÈÅÅÐò¡£Äú¿ÉÒÔΪϲ»¶»òÕ߸оõÓÐÓõĴúÂëµãÔÞ£¬ÄúµÄÆÀ¼Û½«ÓÐÖúÓÚÎÒÃǵÄÏµÍ³ÍÆ¼ö³ö¸ü°ôµÄC++´úÂëʾÀý¡£ ʾÀý1: EscapeCommFunctionint RS232Interface::SetSerialRTSDTR(int state){ int result = E2ERR_OPENFAILED;#ifdef _WINDOWS if ( hCom != INVALID_HANDLE_VALUE ) { if (state) { EscapeCommFunction(hCom, SETRTS); EscapeCommFunction(hCom, SETDTR); } else { EscapeCommFunction(hCom, CLRRTS); EscapeCommFunction(hCom, CLRDTR); } result = OK; }#else#ifdef _LINUX_ int flags; ioctl(fd,TIOCMGET, &flags); if (state) { flags |= (TIOCM_RTS|TIOCM_DTR); } else { flags &= ~(TIOCM_RTS|TIOCM_DTR); } result = ioctl(fd,TIOCMSET, &flags); #endif#endif return result;}
¿ª·¢ÕßID:bieli£¬ÏîÄ¿Ãû³Æ:avr_jokes£¬´úÂëÐÐÊý:38£¬
ʾÀý2: SetCommMaskvoid CSerialPort::Close(){ if (m_hTTY != INVALID_HANDLE_VALUE) { // disable event notification and wait for thread to halt SetCommMask( m_hTTY, 0 ); // drop DTR EscapeCommFunction( m_hTTY, CLRDTR); // SETRTS // purge reads/writes PurgeComm( m_hTTY, PURGE_TXABORT | PURGE_RXABORT); CloseHandle( m_hTTY ); m_hTTY = INVALID_HANDLE_VALUE; }}
¿ª·¢ÕßID:benoitk£¬ÏîÄ¿Ãû³Æ:cristalqt_win£¬´úÂëÐÐÊý:14£¬
ʾÀý3: setRtsIOVALUE setRtsIO(VALUE self, VALUE rb_int){ { Check_Type(rb_int, T_FIXNUM); } int boolean = FIX2INT(rb_int); PortDescriptor *port = NULL; Data_Get_Struct(self, PortDescriptor, port); return INT2FIX( EscapeCommFunction(port->fd, boolean == 1 ? SETRTS : CLRRTS) );}
¿ª·¢ÕßID:Ingenico£¬ÏîÄ¿Ãû³Æ:ruby-rs-232£¬´úÂëÐÐÊý:14£¬
ʾÀý4: Cm17aStart/* * Open the given com port and reset the attached cm17a */int Cm17aStart(int comPortNumber){ char comPortString[80] ; sprintf(comPortString, "////.//COM%d", comPortNumber) ; thePort = CreateFile(comPortString, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL) ; if (thePort != INVALID_HANDLE_VALUE) { /* Reset the device */ EscapeCommFunction(thePort, CLRDTR) ; EscapeCommFunction(thePort, CLRRTS) ; Sleep(DELAY) ; EscapeCommFunction(thePort, SETDTR) ; EscapeCommFunction(thePort, SETRTS) ; Sleep(DELAY) ; return 1 ; } else return 0 ;}
¿ª·¢ÕßID:derrills1£¬ÏîÄ¿Ãû³Æ:ccnet_gitmode£¬´úÂëÐÐÊý:27£¬
ʾÀý5: EscapeCommFunctionvoid SerialPort::clearRTS(){ if (!isOpen()) return;#ifdef __WIN32__ EscapeCommFunction(handle, CLRRTS);#endif#ifdef __gnu_linux__ int bit = TIOCM_RTS; ioctl(handle, TIOCMBIC, &bit);#endif#if defined(__APPLE__) && defined(__MACH__) ioctl(handle, TIOCM_RTS);#endif}
¿ª·¢ÕßID:HenriVesala£¬ÏîÄ¿Ãû³Æ:EmptyEpsilon£¬´úÂëÐÐÊý:15£¬
|