Hi,
I'm developing a mod for Scratch that will allow controlling an educational robot via Bluetooth. I'm using SerialPort2 class that is included in Scratch plugin and allows opening ports by name. Everything works fine BUT, when I send commands in a loop, and the connection is lost (i.e. the robot was powered off), the VM freezes. I tried forking the port nextPutAll like that: timer := Delay forMilliseconds: 1000. port := SerialPort2 new. port openPortNamed:'COM14' baud:57600. process := [port nextPutAll:'test'. Transcript show:'port'.] forkAt: 1. [timer wait. Transcript show:'delay'. process terminate.] forkAt: 7. but with no result. Is there any way to write to a serial port with timeout? mactro |
On Mon, 9 Sep 2013, mactro wrote:
> Hi, > > I'm developing a mod for Scratch that will allow controlling an educational > robot via Bluetooth. I'm using SerialPort2 class that is included in Scratch > plugin and allows opening ports by name. Everything works fine BUT, when I > send commands in a loop, and the connection is lost (i.e. the robot was > powered off), the VM freezes. I tried forking the port nextPutAll like that: > > timer := Delay forMilliseconds: 1000. > port := SerialPort2 new. > port openPortNamed:'COM14' baud:57600. > process := [port nextPutAll:'test'. Transcript show:'port'.] forkAt: 1. > [timer wait. Transcript show:'delay'. process terminate.] forkAt: 7. > > but with no result. Is there any way to write to a serial port with timeout? I can't help you with the SerialPort issue, but the process priorities 1 and 7 are definitely bad. Since the idle process uses priority 10, your processes will never run. Try using something between 11 and 39, or use the named priorities: Processor userBackgroundPriority Processor systemBackgroundPriority Levente > > mactro > > > > -- > View this message in context: http://forum.world.st/Serial-port-write-freezes-the-VM-tp4707333.html > Sent from the Squeak - Beginners mailing list archive at Nabble.com. > _______________________________________________ > Beginners mailing list > [hidden email] > http://lists.squeakfoundation.org/mailman/listinfo/beginners > Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
Well, at first I tried using larger numbers, but it seems, that my VM
has maximum priority equal to 8. Processor userBackgroundPriority prints 3 and Processor userInterruptPriority prints 5. pozdrawiam Maciej TroszyĆski 2013/9/10 Levente Uzonyi <[hidden email]>: > On Mon, 9 Sep 2013, mactro wrote: > >> Hi, >> >> I'm developing a mod for Scratch that will allow controlling an >> educational >> robot via Bluetooth. I'm using SerialPort2 class that is included in >> Scratch >> plugin and allows opening ports by name. Everything works fine BUT, when I >> send commands in a loop, and the connection is lost (i.e. the robot was >> powered off), the VM freezes. I tried forking the port nextPutAll like >> that: >> >> timer := Delay forMilliseconds: 1000. >> port := SerialPort2 new. >> port openPortNamed:'COM14' baud:57600. >> process := [port nextPutAll:'test'. Transcript show:'port'.] forkAt: 1. >> [timer wait. Transcript show:'delay'. process terminate.] forkAt: 7. >> >> but with no result. Is there any way to write to a serial port with >> timeout? > > > I can't help you with the SerialPort issue, but the process priorities 1 and > 7 are definitely bad. Since the idle process uses priority 10, your > processes will never run. Try using something between 11 and 39, or use the > named priorities: > Processor userBackgroundPriority > Processor systemBackgroundPriority > > > Levente > > >> >> mactro >> >> >> >> -- >> View this message in context: >> http://forum.world.st/Serial-port-write-freezes-the-VM-tp4707333.html >> Sent from the Squeak - Beginners mailing list archive at Nabble.com. >> _______________________________________________ >> Beginners mailing list >> [hidden email] >> http://lists.squeakfoundation.org/mailman/listinfo/beginners >> > _______________________________________________ > Beginners mailing list > [hidden email] > http://lists.squeakfoundation.org/mailman/listinfo/beginners Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
Free forum by Nabble | Edit this page |