[chuck-users] chuck serial arduino weirdness

Scott Smallwood ssmallwo at ualberta.ca
Tue Apr 23 01:34:16 EDT 2019


Yeah, that’s it.  Cool - thanks Spencer!

—ss

[ - ]  Scott Smallwood <http://www.scott-smallwood.com/> - Associate Professor - University of Alberta  [ - ]

> On Apr 18, 2019, at 11:03 PM, Spencer Salazar <spencer.salazar at gmail.com> wrote:
> 
> Hey Scott,
> 
> Looks solid, but try checking if the ints[] array is null before the loop, or just put a null check in the loop condition. It shouldn’t normally be null but wouldn’t be surprised if it is occasionally.
> 
> Spencer
> 
> On Apr 18, 2019, at 8:15 PM, Scott Smallwood <ssmallwo at ualberta.ca <mailto:ssmallwo at ualberta.ca>> wrote:
> 
>> Dear chuckians,
>> 
>> Not sure how many of you have messed with the serial objects - but I’m having a bit of a head-scratcher and wondered if anyone had any ideas about this.
>> 
>> I built a little box with one knob and one switch - which I’m planning to use as a master volume and mute switch for a multichannel audio installation that is running in Chuck.
>> 
>> The Arduino code is really basic:
>> 
>>>> const int SwitchPin = 12;
>> const int VolPin = 0;
>> 
>> void setup() 
>> {
>>   //turn on serial communication
>>   Serial.begin(57600);
>> 
>>   //set switch pin and turn on pullup resistor
>>   pinMode (SwitchPin, INPUT);
>>   digitalWrite (SwitchPin, HIGH);
>> }
>> 
>> void loop() 
>> {
>> 
>>   Serial.print(digitalRead(SwitchPin));
>>   Serial.print(' ');
>>   Serial.println(analogRead(VolPin));
>>   delay(50);
>> 
>> }
>>>> 
>> OK - so I first built a little Max patch to test it, which works flawlessly as far as I can tell.
>> 
>> I then wrote a little chuck script, based partially on one of Spencer’s examples.  It simply grabs the data and prints it to the console.
>> 
>> It works great for awhile, but after a few minutes, it always crashes with an array-out-of-bounds exception:
>> 
>> NullPointerException: (array access) on line[35]
>> 
>> I’m grabbing two ints, and looping through and printing them out.  Why is the array size suddenly getting mucked up here?   It’s intermittent, and sometimes doesn’t happen for several minutes, but always results in a crash eventually.  Any ideas?? (chuck code below)
>> 
>>>> 
>> SerialIO.list() @=> string list[];
>> SerialIO cereal;
>> 
>> //the name of my arduino box's serial port
>> "usbserial-12DP0657" => string port;
>> 
>> //number of serial device
>> -1=>int device;
>> 
>> //loop through any ports and find the one with the right name
>> for(0=>int i; i < list.cap(); i++)
>> {
>>     
>>     //check for correct port name
>>     if (list[i].find(port) != -1)
>>     { 
>>         //and assign the device number
>>         i => device;
>>     }
>>     else 
>>         -1 => device;
>> }
>> 
>> //open the serial port
>> cereal.open(device, SerialIO.B57600, SerialIO.ASCII);
>> 
>> //loop through and grab the serial port data
>> while(true)
>> {
>>     cereal.onInts(2) => now;
>>     cereal.getInts() @=> int ints[];
>>         
>>     //print out to console
>>     for(0=>int i; i < ints.cap(); i++)    //<- this is where the problem seems to happen
>>     {
>>         chout <= ints[i] <= " ";
>>     }
>>     chout <= IO.newline();
>> }
>> 
>> 
>> 
>> —ss
>> 
>> [ - ]  Scott Smallwood <http://www.scott-smallwood.com/> - Associate Professor - University of Alberta  [ - ]
>> 
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users at lists.cs.princeton.edu <mailto:chuck-users at lists.cs.princeton.edu>
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users <https://lists.cs.princeton.edu/mailman/listinfo/chuck-users>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20190423/bc25f6a3/attachment.html>


More information about the chuck-users mailing list