WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Plug-in development (https://forum.worldviz.com/forumdisplay.php?f=8)
-   -   Question about serial port (https://forum.worldviz.com/showthread.php?t=3006)

mizutani_jun 10-08-2010 12:41 AM

Question about serial port
 
Hi.
I need help about serial port problems.
My program currently using treadmill as output device for position data and patriot for orientation data.
I`m using serial port module like most of this forum user using right now.
Matlab is my main program previously but i changed to vizard recently.
But i still use my original matlab m.file as reference.
This is my original matlab command.

#set serial port
s1=serial('COM1');
set(s1,'Terminator','CR');
set(s1,'InputBufferSize',1024);

#open port
fopen(s1);

#unlock treadmill and read data
fprintf(s1,'S0000');
OutData=fread(s1,5);
OutData=OutData(2:4,1);

#lock treadmill
fprintf(s1,'Z');

I can set my treadmill to lock@unlock without no problem.
When i run the program no error occured but i received no output bytes from it.

x=ser.read()
print x
print 'received',len(x),'bytes'

input/output window show:
['']
received 0 bytes

I`m pretty sure i got no mistake about serial setting or vizard command because i adjust the parameter for serial and i can lock@unlock my treadmil.
So i assume there must be a problem with the connection of terminator and inputbuffersize command in matlab.
I`m not really sure this is the cause for my problems but i dont know how to set this in vizard so i just assuming it.
Any menthod to changed this in vizard fot this 2 parameter to the way i changed it in matlab?
Or did i miss some commands?
I already tried this for this whole week but still no positive results.
Really need help.
Thanks.

MJ

Jeff 10-11-2010 12:13 PM

Are you reading in the data every frame through a function registered with vizact.ontimer or vizact.onupdate?

mizutani_jun 10-12-2010 12:47 AM

Thanks for the reply Jeff.
Yes i already tried with both function vizact.ontimer and vizact.onupdate but still no positive results.
The input/output window still show results as below.

['']
received 0 bytes

Is there any way i can put this command in vizard?

set(s1,'Terminator','CR');
set(s1,'InputBufferSize',1024);

I`m not sure this have connection or this is the reason i cant get the data.
But i dont know how to change this command in vizard so i cant test it out.
I also searched about this two functions on website but seems all the results is just related to matlab.
I really need help about this.
Thanks

MJ

mizutani_jun 10-18-2010 12:31 AM

Hi.
I try changed the command and sometimes got this in input/output command window.

['R']
received 1 bytes

What is the meaning of this?
Is it mean i got the data but can`t read it in vizard?
I supposed to get counts(numbers) but i got letter 'R' as my output.
I already tried about this serial for this last two weeks.
I really need help about this.

MJ

Jeff 10-19-2010 10:45 AM

Are you using the pySerial module? There should be no problem getting serial data in Vizard using that, it is just an add on for Python. The pySerial documentation should have examples of reading data into a Python script.

JimC 10-21-2010 12:58 PM

Using default port parameters?
 
It looks like you're mostly using the default values for the serial port parameters (baud rate, parity, and so on). It might be worth checking that these defaults are the same in pySerial as they are in Matlab...perhaps find out what values the Matlab serial port uses and explicitly set those in the Python code...

mizutani_jun 11-21-2010 03:53 PM

I already solved this problem.
Thanks.


All times are GMT -7. The time now is 05:04 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC