разобрать строку с arduino в processing
- Войдите на сайт для отправки комментариев
Ср, 06/01/2016 - 16:49
Всем привет!
подскажите новичку!
решил на процессинге написать программу бортового компа на мотоцикл .
проблемма следующего характера
иногда прога подхватывает страку и разбирает ее нормально, а иногда зависает на моменте разбора строки. Приходится отключать ардуину и заного запускать прогу
ардуина шлет постоянно строку
0,0,259,774,251, ,100000001101110000000000000000:
числа через запятую это спидометр, тахометр, напряжение борт сети, уровень топлива и охлождающаяя жидкость
без запятых это лампочки
что я делаю не так?
вот часть кода процессинга
while (myPort.available() !=0) { String inBuffer = myPort.readStringUntil(lf); if (inBuffer != null) { println(inBuffer); int[] nums = int(split(inBuffer, ',')); sp = nums[0]; th = nums[1]; bat= nums[2]; fu = nums[3]; tu = nums[4]; sp=sp+60; th=th+60; if (sp > 300) sp = 300; if (th > 300) th = 300; println(bat); } }
вроде я понял что строка у меня не простая
часть через запятую, а часть (0 и 1) цыфровые входы без разделителей.
А я пытаюсь разобрать строку как будто она вся с разделителями.
Вот не могу сообразить как ее правильно разобрать чтоб каждое число сохранялось в nums[]
подскажите как правильно
Зарание спасибо!
Была такая же проблема в цыкле толучилось только вывести на эклан.
А вот так в ручную все получилось. С ардуино отправка идет одной строкой
Видеоуроки по Arduino. I2C и processing (7-я серия, ч1 и ч2)
Все эти косяки в любом коде и любом языке рассматриваются по своему.
в C# Windows Form --- MessageBox.Show("строка переманная и т.п."); или консоль.
в консольных приложениях -- соответственно консоль и окно терминала.
в PHP --- var_dump();
в js можно и алертом вывести, что остановит цикл и выведет значение и будет ждать пока ок не нажмешь.
В процессинге - кстати видел но пока не смотрел подробно тоже чтото есть.
-косяки в скорости приема данных --- myPort.available() !=0
-есть такая штука скорость порта --- 9600 например бит и т.п.
-есть такая штука - частота микроконтроллера и если в коде вызвать массив то ардуина так тупанет что зависнет...
вчера вот писал человеку код - простой двухмерный массив и уно выдавала задержки на секунду...
хотя массив был arr[][] = {{1,2},{3,4},{5,6},{7,8}};