日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了MATLAB SIMULINK對加工編程(串口通信)?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

如何從MATLAB SIMULINK(串行發送擋路)發送一些數據并在處理編程中接收該值?我完全需要一個浮點型或整型。
我使用的是虛擬串行端口,例如用于Simulink串行配置的COM1和用于處理的COM2。

推薦答案

您可以使用Processing Serial Library與串行端口連接。

一旦選擇了”快速且臟”選項,則將數據作為字符串從Simulink發送,該字符串以換行符('
'
)結尾。

使用bufferUntil('
')
serialEvent()的組合,您可以偵聽完整的字符串(可以是整型字符串或浮點型字符串),只需對其進行分析即可。

以下是上面示例的修改版本,用于說明解析:

// Example by Tom Igoe 
 
import processing.serial.*; 
 
Serial myPort;    // The serial port
PFont myFont;     // The display font
String inString;  // Input string from serial port
int lf = 10;      // ASCII linefeed 
 
void setup() { 
  size(400,200); 
  // You'll need to make this font with the Create Font Tool 
  myFont = loadFont("ArialMS-18.vlw"); 
  textFont(myFont, 18); 
  // List all the available serial ports: 
  printArray(Serial.list()); 
  // I know that the first port in the serial list on my mac 
  // is always my  Keyspan adaptor, so I open Serial.list()[0]. 
  // Open whatever port is the one you're using. 
  myPort = new Serial(this, Serial.list()[0], 9600); 
  myPort.bufferUntil(lf); 
} 
 
void draw() { 
  background(0); 
  text("received: " + inString, 10,50); 
} 
 
void serialEvent(Serial p) { 
  inString = p.readString(); 
  // if we received a valid string from Simulink
  if(inString != null && inString.length() > 0){
    // trim white space (
, etc.)
    inString = inString.trim();
    // parse value
    int valueAsInt = int(inString);
    float valueAsFloat = float(inString);
    println("received: ", valueAsInt, valueAsFloat);
  }
  
} 

注意上面的內容沒有經過測試(因為我沒有Simulink),但是它應該說明了這個想法。(記住在運行之前仔細檢查并更新使用的串行端口,當然還要匹配Simulink和Processing之間的波特率)。

這將是一種簡單的方法,但不是非常有效的方法,因為您將為浮點值發送多個字節。

如果您只需要發送一個最大255(一個字節)的int,則只需在處理中使用readByte()即可。如果您需要發送一個更大的整數(例如,16位或32位整數),那么您將需要類似readBytes()的內容來緩沖單個字節,然后將它們放在一起形成一個更大的更高精度的整數。(與彩車類似)。

很多年前,我記得我和一位才華橫溢的工程師一起研究機器人,他使用的是Simulink,但我們沒有使用Serial,而是簡單地使用本地機器上的套接字來讓軟件相互通信。在那個場景中,因為我們需要恒定的快速數據流,所以我們使用了UDP套接字(在處理過程中可以由oscP5 library處理)。也許值得檢查一下是否有用于UDP上的OSC(Open Sound Control,開放聲音控制)協議的Simulink插件/庫。這將使使用整型/浮點型打包命名消息變得更加容易,因為您不必從頭開始構建通信協議。

這篇關于MATLAB SIMULINK對加工編程(串口通信)?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:matlab SIMULINK 串口 加工 編程 通信
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定