码迷,mamicode.com
首页 > Windows程序 > 详细

C#与MATLAB通信-2

时间:2017-05-05 10:55:23      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:code   数据   代码   har   role   write   重要   buffers   控制器   

-1 与-2 都是通过桌面的文本文件.txt来实现C#与MATLAB端的数据传输,这个txt文件就起到了中间的连接,但若将服务器端放在云服务器上,因为不在同一台计算机中,所以不能找到一个二者都能访问到的中间文件txt 所以这种方法不可行

用fwrite函数发送变量值给服务器端,代码也很简单,不知道当时为什么在这上边整不明白,重要的几句代码如下:

a=‘1.1‘;%模拟存储电机的实时速度
fwrite(s,a,‘int8‘);%发送电机的实时速度给服务器端

receive=fread(s,get(s,‘BytesAvailable‘));
data=char(receive)‘% ’使接收到的列向量转置成一个字符串类型

MATLAB(客户端)

 1 s = tcpip(127.0.0.1, 125, NetworkRole,client);
 2 set(s, InputBufferSize, 30); 
 3 set(s, outputBufferSize, 30); 
 4 set(s,Timeout,3);
 5 fopen(s);
 6 b=1;
 7 c=1;
 8 d=1;
 9 
10 a=1.1;%模拟存储电机的实时速度
11 fwrite(s,a,int8);%发送电机的实时速度给服务器端
12 pause(1);%暂停一秒
13 
14 while(b)%while循环是想 只有读到PID控制器计算完成的信号后,再往下执行代码 否则在原地等待 直到读到信号
15     read=fread(s,1)
16     if read==49
17         b=0;
18     end
19 end
20 receive=fread(s,get(s,BytesAvailable));
21 data=char(receive)22 
23 
24 a=2.2;%模拟存储电机的实时速度
25 fwrite(s,a,int8);%发送电机的实时速度给服务器端
26 pause(1);%暂停一秒
27 
28 while(c)%while循环是想 只有读到PID控制器计算完成的信号后,再往下执行代码 否则在原地等待 直到读到信号
29     read=fread(s,1)
30     if read==49
31         c=0;
32     end
33 end
34 receive=fread(s,get(s,BytesAvailable));
35 data=char(receive)36 
37 a=3.3;%模拟存储电机的实时速度
38 fwrite(s,a,int8);%发送电机的实时速度给服务器端
39 pause(1);%暂停一秒
40 
41 while(d)%while循环是想 只有读到PID控制器计算完成的信号后,再往下执行代码 否则在原地等待 直到读到信号
42     read=fread(s,1)
43     if read==49
44         d=0;
45     end
46 end
47 receive=fread(s,get(s,BytesAvailable));
48 data=char(receive)49 
50 fclose(s)

 

代码:

 

C#与MATLAB通信-2

标签:code   数据   代码   har   role   write   重要   buffers   控制器   

原文地址:http://www.cnblogs.com/1987-05-04/p/6811429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!