C#與MATLAB通訊-2

-1 與-2 都是經過桌面的文本文件.txt來實現C#與MATLAB端的數據傳輸,這個txt文件就起到了中間的鏈接,但若將服務器端放在雲服務器上,由於不在同一臺計算機中,因此不能找到一個兩者都能訪問到的中間文件txt 因此這種方法不可行服務器

用fwrite函數發送變量值給服務器端,代碼也很簡單,不知道當時爲何在這上邊整不明白,重要的幾句代碼以下:tcp

a='1.1';%模擬存儲電機的實時速度
fwrite(s,a,'int8');%發送電機的實時速度給服務器端函數

receive=fread(s,get(s,'BytesAvailable'));
data=char(receive)'% ’使接收到的列向量轉置成一個字符串類型spa

MATLAB(客戶端)code

 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)

 

代碼:blog

相關文章
相關標籤/搜索