C#与MATLAB通信-2

-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)

代码:

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