matlab下PC2PC网口通信操作
来源:互联网 发布:centos 五笔输入法 编辑:程序博客网 时间:2024/05/18 03:10
准备:操作系统xp两台pc, matlab为2011a版本(或以上)
网线直连,设置两台PC为同一局域网内(如192.168.1.101与192.168.1.102);
PC1:发端
>> data = membrane(1); %生成数据
>> s = whos('data'); %提取数据参数
>> tcpipServer = tcpip('0.0.0.0',55000,'NetworkRole','Server'); %设置对象属性
>> set(tcpipServer,'OutputBufferSize',s.bytes); %设置缓存长度
>> fopen(tcpipServer); %打开对象
>> fwrite(tcpipServer,data(:),'double'); %写入数据
PC2:收端
>> tcpipClient=tcpip('192.168.1.102',55000,'NetworkRole','Client')%设置对象属性
>> set(tcpipClient,'InputBufferSize',7688); %设置缓存长度
>> set(tcpipClient,'Timeout',30); %设置连接时间
>> fopen(tcpipClient); %打开连接对象
>> rawData=fread(tcpipClient,961,'double'); %接收数据,为行向量
>> data1=reshape(rawData,31,31); %数据整理
>> surf(data1) %绘图
注意:在PC1上打开对象时,若PC2连接对象尚未打开,则PC1 workspace中一直显示busy,当PC2连接对象打开后,PC1中对象打开成功后,才可以写入数据。
上述程序用到的matlab函数解析:
whos:在matlab中whos用于列出当前工作空间中所有变量,以及它们的名字、尺寸(比如一个矩阵或数组的行列维数)、所占字节数、属性等信息。这些信息都显示在matlab中的workspace窗口中。
tcpip:创建tcpip客户端或服务器对象
用法:OBJ = tcpip('RHOST') 创建一个tcpip客户端或服务器对象,OBJ,该对象与远程主机RHOST相关联,默认的远端端口值为80。为了与器械,对
象,OBJ通信,必须将RHOST与FOPEN函数连接。
OBJ = tcpip('RHOST', RPORT) 建立一个tcpip对象,OBJ,远端主机RHOST和远端端口值RPORT相关联。默认情况下,选择了tcpip客户端支持。当tcpip对象被建立后,对象的状态特性被关闭。一旦对象以FOPEN函数与host相连接,状态属性被配置为打开。
OBJ = tcpip(..., RPORT, 'P1',V1,'P2',V2,...)建立了一个带有指定特性值的tcpip对象。如果对象被指定了一个无效的属性名或属性值,则对象不能被建立。注意:属性值对可以是SET函数支持的任意格式,即参数值字符串对,结构体以及参数值单元阵列对。
多归属主机中默认的本地主机是系统默认值。本地端口默认为[ ],它会使任意自由的本地端口被拾取以作为本地端口。当FOPEN被发出时,本地端口属性被更新。
'NetworkRole'的属性值对,‘服务器’将引起tcpip阻塞,并等待当FOPEN函数被调用时,与远端主机匹配的一个远程客户机的连接。在受信任的环境中,远程主机可能被设置为“0.0.0.0”的通配符地址,以接受来自任何单一客户端的连接。当一个有效的连接打开时,tcpip RemoteHost将被设置为连接的客户机的地址。
任何时候,你都可以查看tcpip函数的完整单具有帮助功能的属性,instrhelp tcpip。
fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:
COUNT=fwrite(fid,A,precision)
说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。
例6.8 将一个二进制矩阵存入磁盘文件中。
>> a=[1 2 3 4 5 6 7 8 9];
>> fid=fopen('d:\test.bin','wb') %以二进制数据写入方式打开文件
fid =
3 %其值大于0,表示打开成功
>> fwrite(fid,a,'double')
ans =
9 %表示写入了9个数据
>> fclose(fid)
ans =
0 %表示关闭成功
COUNT=fwrite(fid,A,precision)
说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。
例6.8 将一个二进制矩阵存入磁盘文件中。
>> a=[1 2 3 4 5 6 7 8 9];
>> fid=fopen('d:\test.bin','wb')
fid =
>> fwrite(fid,a,'double')
ans =
>> fclose(fid)
ans =
Matlab中fread函数用法
“fread”以二进制形式,从文件读出数据。
语法1:[a,count]=fread(fid,size,precision)
语法2:[a,count]=fread(fid,size,precision,skip)
size: 不指定 :到尾返回读。
precision(精度)
precision(精度)规定了以浮点数、整型数、字符读出时位。matlab 的precision(精度)的表达式与c语言、fortran语言、是一致的。不规定precision(精度),则字符默认为: ucher、则数值默认为:双精度 。
以下precision(精度)将保证读出具有一致的体积。
MATLAB C or Fortran Descriphon(精度)
'char' 'char*l' 8 位,字符型
'uchar' 'unsigned char' 8 位
'schar' 'signed char' 8 位,字符型
'int8' 'integer*1' 8 位,整型数
'intl6' 'integer*2' 16 位,整型数.
'int32' 'integer*4' 32 位,整型数.
'int64' 'integer*8' 64 位,整型数
'uint8' 'integer*l' 8 位
'uintl6' 'integer*2' 16 位
'uint32' 'integer*4' 32 位
'uint64' 'integer*8' 64 位
'float32' 'real*4' 浮点数, 32 位
'float64' 'real*8' 浮点数, 32 位
以下precision(精度)将不保证读出具有一致的体积。
MATLAB C or Fortran Descriphon(精度)
'short' 'short' 16 位,整型数
'int' 'int' 32 位,整型数
'long' 'long' 32 (64) 位,整型数
'uShort' 'Unsigned short' 16 位
'uint' 'Unsigned int' 32 位
'ulong' 'unsigned long' 32 (64) 位
'float' 'float' 浮点数, 32 位
'double' 'double' 浮点数, 64 位
以下precision(精度)规定读出指定的体积n。
'bitN' N位,整型数 1<=N<=64
'ubitN' N位, 1<=N<=64
阅读全文
0 0
- matlab下PC2PC网口通信操作
- matlab 环境下二进制文件操作
- ubuntu下deactivate matlab的操作
- matlab下常用到的目录操作
- 六、Matlab 之 绘图操作(下)
- MATLAB通信工具箱函数
- matlab通信工具箱函数
- Matlab和Arduino通信
- MATLAB串口通信
- matlab串口通信
- 张量的展开与matlab下的工具包操作
- 张量的展开与matlab下的工具包操作
- Linux下PV操作与共享存储区通信
- Matlab通信仿真常用函数
- matlab 实现串口通信 SERIAL
- MATLAB 串口通信的实现。。
- Matlab一些操作技巧
- Matlab常用图像操作
- UVa524 例题7-4 素数环 (Prime Ring Problem)
- JS转换HTML转义符
- 将SpringBoot Maven项目发布到远程tomcat服务器步骤及相关问题解决
- 偶串
- SQL查询前几条数据的方法
- matlab下PC2PC网口通信操作
- 彩色瓷砖
- 对于HTML5表单新增元素的小练习
- java 设计模式 其一 单例模式
- Neutron安全组分析(二)
- android logger 简单,漂亮和强大的记录器
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(四)
- 鼠标的常用事件
- 知识迁移能力-和为S的两个数字