PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : probleme beim printbefehl mit rn schrittmotor



manus
20.06.2009, 13:10
Ich habe mir rn schrittmotor zugelegt und es funktioniert alles soweit.
Jetzt wollte ich es mit einem anderen Programm ansteuern (david-laserscanner) und es geht nicht.
Ich vermute es liegt an der Art wie die Daten gesendet werden.
Ich habe den printbefehl in die entsprechende Zeile geschrieben und nichts ist passiert.
Gibt es eine Möglichkeit irgendwie mit diesem Programm meinen Schrittmotor zum drehen zu bekommen?
hier ist der ausschnitt aus der Wikki von David-laserscanner wie die Daten gesendet werden.
Danke Manus

DAVID will send short messages (as text - string or single character) in certain situations. You can define what to send in the Advanced Settings under Communication→COM→Messages.

*
Close: The string defined here will be sent when DAVID is closed.
*
ModeCalib: Will be sent when you navigate to the Calibration dialog.
*
ModeScan: Will be sent when you navigate to the Scan dialog and choose the upper “Show camera image” toggle.
*
ModeTexture: Will be sent when you prepare to grab a texture (choose the lower “Show camera image” toggle.
*
Open: Will be sent when DAVID is started.
*
StartScanning: Will be sent when you click “Start”, directly after the Reference Image has been grabbed, immediately before scanning starts.
*
StopScanning: Will be sent when you click “Stop”.
*
ScanSaved: Will be sent after you have saved the scan to a file or forwarded it to ShapeFusion (as an indicator that this scan is completed and a new scan will begin).
*
and more, see the descriptions in the Advanced Settings.

You can set the value Newline if you want DAVID to append a certain character to each message (e.g. Byte value 10 for Line Feedback, 13 for Carriage Return, etc., see any ASCII table). Please note: This setting is different from the above “Message” settings. When you enter “13” here, DAVID will append a single byte (value 13). When you enter “13” in one of the Message settings above, DAVID will send two bytes: “1” (ASCII code 49) and “3” (ASCII code 51). Additionally you can include a “\r” in the Message strings; each \r will be replaced by the newline character.

As a simple alternative, you can use the DTR pin as a boolean output. If you set UseDtrDuringScan to 1, DAVID will set the pin high when scanning starts and low on stop. If you set the value to 2, DAVID will send a rect signal synchronized to image grabbing and analysis. You can e.g. make a step with your laser motor each time the signal goes up. Please note that the moment the pin goes low is when DAVID grabs the latest image, not when the camera sensor is actually exposed. To synchronize laser steps and camera images, you may want to set a delay in Laserscanner→MinDelayBetweenFrames and set Laserscanner→LaserPlaneCalculation→LaserMotionEsti mation→MotionBase to 2.

manus
20.06.2009, 17:15
Um das problem einwenig einzugrenzen dabe ich den gesammten datenverkehr mit advanced serial port monitor überwacht.
wenn ich jetzt bei rn schrittmotor im programm sage er soll 600 schritte drehen wird !#7<SOH>X<STX><NUL><NUL><NUL> gesendet wenn ich das gleiche von david-laserscanner sende dreht nichts
hire die gesammte kommunikation zuerst von rn schrittmotor dan von david
wenn ich über den advanced serial port monitor den befehl !#7<SOH>X<STX><NUL><NUL><NUL> gebe dreht er auch...
bin am verzweifeln und habe keine idee mehr

<20090620165841.984 SYS>
COM port is opened
<20090620165841.984 SYS>
In/out queue size 1024/512
<20090620165841.984 SYS>
Purge the serial port: RXABORT, RXCLEAR, TXABORT, TXCLEAR
<20090620165841.984 SYS>
Set timeouts: ReadInterval=-1, ReadTotalTimeoutMultiplier=0, ReadTotalTimeoutConstant=0, WriteTotalTimeoutMultiplier=0, WriteTotalTimeoutConstant=5000
<20090620165841.984 SYS>
Baud rate 9600
<20090620165841.984 SYS>
RTS off
<20090620165842.000 SYS>
DTR off
<20090620165842.000 SYS>
Data bits=8, Stop bits=1, Parity=None
<20090620165842.000 SYS>
Set chars: Eof=0x1A, Error=0x00, Break=0x00, Event=0x00, Xon=0x11, Xoff=0x13
<20090620165842.000 SYS>
Handflow: ControlHandShake=(), FlowReplace=(), XonLimit=256, XoffLimit=256
<20090620165852.296 TX>
!#7<SOH>X<STX><NUL><NUL><NUL>
<20090620165852.312 RX>
*
<20090620170343.968 SYS>
DTR off
<20090620170343.968 SYS>
Purge the serial port: RXABORT, RXCLEAR, TXABORT, TXCLEAR
<20090620170344.468 SYS>
COM port is closed

jetzt david
<20090620170352.109 SYS>
COM port is opened
<20090620170352.125 SYS>
Baud rate 9600
<20090620170352.125 SYS>
RTS off
<20090620170352.125 SYS>
DTR off
<20090620170352.125 SYS>
Data bits=8, Stop bits=1, Parity=None
<20090620170352.125 SYS>
Set chars: Eof=0x1A, Error=0x00, Break=0x00, Event=0x1A, Xon=0x11, Xoff=0x13
<20090620170352.140 SYS>
Handflow: ControlHandShake=(), FlowReplace=(), XonLimit=25, XoffLimit=25
<20090620170352.140 SYS>
Baud rate 9600
<20090620170352.140 SYS>
RTS off
<20090620170352.156 SYS>
DTR off
<20090620170352.156 SYS>
Data bits=8, Stop bits=1, Parity=None
<20090620170352.156 SYS>
Set chars: Eof=0x1A, Error=0x00, Break=0x00, Event=0x1A, Xon=0x11, Xoff=0x13
<20090620170352.156 SYS>
Handflow: ControlHandShake=(), FlowReplace=(), XonLimit=25, XoffLimit=25
<20090620170352.171 SYS>
DTR off
<20090620170352.171 SYS>
Set timeouts: ReadInterval=-1, ReadTotalTimeoutMultiplier=-1, ReadTotalTimeoutConstant=-2, WriteTotalTimeoutMultiplier=0, WriteTotalTimeoutConstant=0
<20090620170352.171 SYS>
In/out queue size 4096/2048
<20090620170425.140 TX>
!#7<SOH>X<STX><NUL><NUL><NUL>