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.sala...@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 <ssmal...@ualberta.ca 
> <mailto:ssmal...@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@lists.cs.princeton.edu 
>> <mailto:chuck-users@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@lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users

_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users

Reply via email to