Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
7 years, 5 months ago.
Sending array from mbed to Matlab
Hi
I'm new to serial interfacing and am having some issues sending an array from mbed to matlab to do further manipulations with so would appreciate some advice, I have the serial set up correctly as I have no issue printing the data to terminal, I'm just unable to read it in MATLAB. the key bit of mbed code is as follows:
int trigger = 1; //matlab trigger const for(int i =0; i<NumReadings;i++){ pc.printf("%d", trigger); //print trigger to matlab so it knows next info is data pc.printf("%d,%d,%d,%f\n\r",lftArr[i],rgtArr[i],linArr[i],timArr[i]); //print values wait(0.03f); } trigger = 2; //trigger value to tell matlab data package has finished pc.printf("%d\n\r", trigger);
And respectively I have the following MATLAB code:
%fclose(instrfind) s1 = serial('/dev/tty.usbmodem1423'); %Update address to where mbed is fopen(s1); %Open port trig_read = 1; %Two variables send from mbed as checks for data trig_end = 2; NumReadings =100; readings = zeros(100,4); while(1) trigger=fgetl(s1); trigger=sscanf(trigger,'%d'); if trigger==trig_read tmp = fgetl(s1); tmp = sscanf(tmp,'%d,%d,%d,%f'); readings(counter+1,1:4) = tmp; %Column 1 trigger=0; end if trigger == trig_end break; end end
I've tried to send trigger bytes so matlab knows when data is incoming but it does not seem to be able to read it at all.
Any advice would be greatly appreciated,
Cheers!
Note, I should probably clarify that I am using MATLAB R2016b.