行将年终,将自己这麽长时间学习Linux的经验与大家分享一下。
在最近这段时间里,由于本身davince学习比较困难,而自己又有很多东西要做,因此很长时间没有更新,在这里做自我批评。
最近进展的确很缓慢,很多时候都不知道该怎么下手,可以说进入了迷茫时期,目前正在苦寻解决方案,早日结束这种情况。
我认为最关键的是我对Linux系统还体会不深,这里不是指别的,而是指glibc,目前正在努力看他的使用手册,偏向于底层的了解,因此应用就做的少些。目前主要有一个任务。我们买了一个测距仪,没有Linux版本的通信程序,她自身可以通过串口或网络来通信,它有一个接口规范。目前主要针对这个接口规范来编写串口接口程序。最终要在davince下实现,目前还徘徊在上位机部分,进展不是很大,串口还要有一段时间需要熟悉。目前对测距仪用串口调试助手测试已经可以(不是我做的),我做的Linux程序如下
#include
#include
#include
#include
#include
#include
#define BAUDRATE B115200
#define MODEMDEVICE "/dev/ttyS0"
#define _POSIX_SOURCE 1 /* POSIX compliant source */
#define FALSE 0
#define TRUE 1
volatile int STOP=FALSE;
int main()
{
int fd,numberwrite,numberreceived,res;
struct termios oldtio,newtio;
char buf[255];
printf("Hello");
fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY );
if (fd <0)
{perror(MODEMDEVICE);
return -1; }
printf("Sucess in open com");
tcgetattr(fd,&oldtio); /* save current port settings */
cfsetispeed(&oldtio,B115200);
cfsetispeed(&oldtio,B115200);
/*oldtio.c_cflag &= ~PARENB;
oldtio.c_cflag &= ~CSTOPB;
oldtio.c_cflag &= ~CSIZE;*/
oldtio.c_cflag |= CLOCAL | CREAD;
oldtio.c_iflag = IGNPAR;
oldtio.c_oflag = 0;
/* set input mode (non-canonical, no echo,...) */
//oldtio.c_lflag = ICANON;
oldtio.c_cc[VTIME] = 0; /* inter-character timer unused */
oldtio.c_cc[VMIN] = 5; /* blocking read until 5 chars received */
tcflush(fd, TCIFLUSH);
tcsetattr(fd,TCSANOW,&oldtio);
numberwrite= write(fd, "Hello", strlen("Hello"));
if(numberwrite<0)
{printf("Faile to send character");
return -1;
}
printf("Success to send character total %d",numberwrite);
while (STOP==FALSE) { /* loop for input */
res = read(fd,buf,5); /* returns after 5 chars have been input */
buf[res]=0; /* so we can printf... */
printf(":%s:%d\n", buf, res);
if (buf[0]=='z') STOP=TRUE;
}
close(fd);
return 0;
}。
这是参考别人做的基本收发模块,目前还在调试中。
我把很多精力放在了glibc上,目前还谈不上了解。
前一段世间装机装的很烦,特别是有一个同学光驱和硬盘是同一个接口,死活装不上,后来我想是否可以利用Linux远程登录到一台服务器,再利用ftp进行文件传输,这样就不用装系统了。telnet是最常用的远程登录方式,主机只要把自己当作ftp服务器就可以了。于是我就下了个Windows版本的ftp服务器,安装后设置用户密码就可以了。
在Windows下命令行中运行 telnet ***.***.***.***(IP)
进入欢迎界面:user:
输入登录名:××××××
提示输入密码:
输入密码后,正常的话就可以进入了。可以进行多种操作。
其实这就是一种基于socket的通信方式罢了。
要写文件进去,用ftp就可以了,首先确保服务器的ftp client可用。可以ftp 自己一下试试。
例如 ftp ***.***.***.***
如果提示输入名字,密码就ok了。
在telnet后的命令行中输入:ftp ***.***.***.***
输入姓名,密码,成功后,用get 来获取文件。
注意此时主机ftp服务程序要开,ftp服务器安装的时候会提示选择ftp目录,在任一盘建立一个文件夹,将它指定为ftp目录,例如:D:/ftp
登录服务器后可用ls来显示文件夹文件
例如ls
这时候D:/ftp是空的,什么都没有,把需要传送的文件弄进去,
再次ls
看文件是否在,再用get ****
提示完成后用bye退出。下载的文件一般放在自己的home文件夹里了。可以进行相应操作。
服务器也可以作为ftp服务器,自己机子做client,windows下用命令ftp
进入命令后用open(记不清了,可用ftp -h来看)***.***.***.***(IP)
链接后就可以传文件。
vista系统没有激活client,因此要在控制面板中好像是程序管理中激活ftp,其他无两样。
最近一直钻在通信这一块了,(未完待续)
阅读(1119) | 评论(0) | 转发(0) |