LINUX´®¿Ú¼òÃ÷½âÎö[ÐÞÕý°æ][0919]
LINUX´®¿Ú¼òÃ÷½âÎö[ÐÞÕý°æ][0919]
09-14
ÉÏÖܵÄʱºò£¬·¢ÁËÆªÎÄÕ£¬¹ØÓÚlinux´®¿ÚµÄ¡¾µ±È»³ÌÐòʦת±ðÈ˵썻¹ÊÇ·¢²¼ÔÚIBM¿ª·¢ÕßÉçÇøµÄàÏ£©¡¿£¬
ËäÈ»µ±Ê±ÄÜÅܵÄͨ£¬µ«ÕâÖÜÔÚÓõÄʱºòÈ´·¢ÏÖ²»ÐÐÁË£¬ÓÚÊǾö¶¨×ÐϸÑо¿ÏÂlinuxÏ´®¿ÚÕâ¶«Î÷£¡
µ±È»ÄǸö³ÌÐòÓÐÎÊÌ⣬¾ÍÒª×Ô¼ºÖØÐÂдÀ²¡£¡£¡£¡£¡£¡£OTZ ¡£¡£¡£¡£¶ö¡£¡£¡£ÎÒÏòÀ´±È½ÏÀÁ¡£¡£¡£¡£
µ±È»Ñо¿¹ý³ÌÖл¹ÊÇÃ÷°×Á˲»ÉÙ¶«Î÷µÄ
1£¬½â¾öminicomÆô¶¯ºó²ÅÄÜÕý³£¶ÁÈ¡Êý¾ÝµÄÎÊÌâ
2. ½â¾ö¶ÁÈ¡Êý¾ÝȱʧµÄÎÊÌâ
3. ѧϰʹÓÃselectº¯Ê½¼ì²â´®¿Ú״̬ÐÅÏ¢
¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£
µ±È»Õâ´Î˳´ø¼Óµã×Ô¼ºµÄ·ÖÎö
´®¿ÚµÄÅäÖÃÒ»°ãÒ²¾ÍÊDz¨ÌØÂÊ£¬Êý¾Ý¸ñʽÕâЩ¶«Î÷£¬¶ølinux»·¾³ÏÂÔòͨ¹ýÒ»ÃûΪtermiosµÄ½á¹¹Ìå¶ÔÆä½øÐÐÅäÖÃ
Æä³ÉÔ±ÈçÏÂ
Termios Structure Members
MemberDescription
c_cflag
Control options
c_lflag
Line options
c_iflag
Input options
c_oflag
Output options
c_cc
Control characters
c_ispeed
Input baud (new interface)
c_ospeed
Output baud (new interface)
¿´Ó¢ÎľͺÜÈÝÒ×Ã÷°×ÁË£¬ËùÒÔÎÒÒ²²»¶à˵ɶÁË¡£
Õâ¸ö½á¹¹ÌåÆäʵºÜ¼òµ¥£¬µ«ÆäÖÐÿһÏîµÄÅäÖÃÈ´Òª¸´ÔӵĶ࣬ʵ¼ÊÉÏÎÒҲûÓÐÖðÏîµÄѧϰ
Ö»ÊǼñÓÐÓõĿ´ÁËÏ£¬¶øÏÂÃæ¾ÍÊǹØÓÚÕâЩ֪ʶµÄ¼Ç¼¡£
1.´ò¿ª´®¿Ú
const char * serial_port[]={
"/dev/ttyS0",
"/dev/ttyS1",
"/dev/ttyS2",
"/dev/ttyS3",
"/dev/ttyS4"
};
int serial_open(int port)
{
int fd = open(serial_port[port], O_RDWR|O_NONBLOCK);
if (-1 == fd)
{
perror("Can't Open Serial Port");
exit (-1);
}
else
{
fcntl(fd, F_SETFL, 0);
}
return fd;
}
´ò¿ªÊ±Ò»°ã¿ÉÒÔÓÃO_RDWR £¬O_NOCTTY £¬ O_NDELAYÕâÈý¸ö²ÎÊýµÄ×éºÏ
·Ö±ð´ú±í¶Áд[µ±È»ÓжÔÓ¦Ö»¶Á£¬Ö»Ð´µÄ£¬²Â¶¼²Âµ½ÁË]£¬µÚ¶þ¸ö¸æËßϵͳ¸Ã´®¿Ú²»±»ÓÃÀ´×÷¿ØÖÆÖÕ¶Ë¡¾Ã»ÅªÃ÷°×£¬·´ÕýÒ»°ãÎÒÊDz»Ó㬼û¹ý¸úmodemͨÐŵijÌÐò»áÓõ½¡¿
×îºóÄǸö¾ÍÊDz»ÒªµÈµÄÒâ˼À²¡£¡£¡£¡£¡£¡£
2.ÅäÖô®¿Ú
typedef
enum { SERIAL_8N1=0, SERIAL_7E1=1, SERIAL_7O1=2, SERIAL_7S1=3 }serial_format;
voi
Ïà¹ØÎĵµ£º
topÃüÁîºÍpsÃüÁîµÄ»ù±¾×÷ÓÃÊÇÏàͬµÄ£¬ÏÔʾϵͳµ±Ç°µÄ½ø³ÌºÍÆäËü×´¿ö£»µ«ÊÇtopÊÇÒ»¸ö¶¯Ì¬ÏÔʾ¹ý³Ì£¬¼´¿ÉÒÔͨ¹ýÓû§°´¼üÀ´²»¶Ïˢе±Ç°×´Ì¬¡£Èç¹ûÔÚǰִ̨ÐиÃÃüÁËü½«¶Àռǰ̨£¬Ö±µ½Óû§ÖÕÖ¹¸Ã³ÌÐòΪֹ¡£±È½Ï׼ȷµÄ˵£¬topÃüÁîÌṩÁËʵʱµÄ¶Ôϵͳ´¦ÀíÆ÷µÄ״̬¼àÊÓ¡£Ëü½«ÏÔʾϵͳÖÐCPU×î“Ãô¸Ð”µÄÈÎÎñÁÐ±í¡£¸ÃÃü ......
ÐòÑÔ
¡¡¡¡LinuxÊÇUnix²Ù×÷ϵͳµÄÒ»ÖÖ±äÖÖ£¬ÔÚLinuxϱàдÇý¶¯³ÌÐòµÄÔÀíºÍ˼ÏëÍêÈ«ÀàËÆÓÚÆäËûµÄUnixϵͳ£¬µ«Ëüdos»òwindow»·¾³ÏµÄÇý¶¯³ÌÐòÓкܴóµÄÇø±ð¡£ÔÚLinux»·¾³ÏÂÉè¼ÆÇý¶¯³ÌÐò£¬Ë¼Ïë¼ò½à£¬²Ù×÷·½±ã£¬¹¦ÄÜÒ²ºÜÇ¿´ó£¬µ«ÊÇÖ§³Öº¯ÊýÉÙ£¬Ö»ÄÜÒÀÀµkernelÖеĺ¯Êý£¬ÓÐЩ³£ÓõIJÙ×÷Òª×Ô¼ºÀ´±àд£¬¶øÇÒµ÷ÊÔÒ²²»·½±ã¡£±¾ÈËÕâ¼ ......
Èç¹ûÄã·ûºÏÏÂÃæÁ½¸öÌõ¼þ£¬Äã¿ÉÄܶÔfken¸ÐÐËȤ£º
ÄãÊǸöLinuxµÄÖÒʵÓû§£¬²¢ÇÒ´óÁ¿Ê¹ÓÃÃüÁîÐУ»
³öÓÚijЩÔÒò£¨±ÈÈç³ö¹ú¿¼G£©£¬ÄãÐèÒª´óÁ¿µØ±³µ¥´Ê
fken£¬¼´fuck englishµÄËõд£¬ÊÇÓÃPython±àдµÄС¹¤¾ß¡£
fkenÕâ¸öС¹¤¾ßÄÜÈÃÄãÔÚÆµ·±Ê¹ÓÃLinuxÖն˵Ĺý³ÌÖи¨ÖúÄã±³µ¥´Ê»òÕßÓ¢Óï¾äÐÍ£¬Ç¿»¯ÄãµÄ¼ÇÒä¡£
fken¿ÉÒÔµ¥¶ ......
DWORD GetLocalAddr(char* interface)
{
struct ifreq ifr;
int fd;
int err;
unsigned long ip;
strcpy(ifr.ifr_name, interface);
fd = socket(AF_INET, SOCK_DGRAM, 0);
err = ioctl ......