Страница 2 из 5
Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 20:16
Nick
А оригинальный рисунок какой?

Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 20:24
2cme
Во вложении есть, это рисунок что получается при прямой печати из расширения EggBot без преобразования Graffiti.
По одной команде отправлять очень утомительно получается...
При печате удобно когда начальная точка находится посередине оси X, а по оси Y близкую к верхней точке крепления шаговыков.
Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 20:26
Nick
Скинь еще раз ссылку на оригинал расширения EggBot, попробую ему фишку прикрутить, читать из файла...
Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 20:31
2cme
Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 20:46
Nick
Вот изменил два файла, должна появиться вкладка, из которой можно отправить файл в порт построчно.
ЗЫ они оказывается тоже вкладками пользуются для определения разных функций. Забавно, не с нас ли они это срисовали

.
Я с них точно не срисовывал

.
Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 21:13
2cme
Nick, в закладке "Do file" набираю путь и имя файл, нажимаю кнопку "применить" и получаю ребут компа...

Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 21:38
Nick
2cme писал(а):и получаю ребут компа...
Wow! Сильно
Я тут ничего такого не делал

.
Странно, я всего лишь добавил:
Код: Выделить всё
elif self.options.tab == '"doFile"':
self.EggbotOpenSerial()
self.doFile(self.options.doFileName)
Код: Выделить всё
def doFile( self, fname ):
f = open(fname,"r")
for s in f.readlines() :
self.doCommand( s )
f.close()
Можно попробовать конечено еще все это в try завернуть... но чтобы комп перезапустился...
попробуй еще раз.
Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 21:57
2cme
После нажатия кнопки "Применить" появляется стандартное окошоко, а затем ребут, вероятно что то некоректно отрабатывается...
Пробывал 3 раза, результат один - ребут!
Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 22:50
Nick
Ок, давай тогда просто попробуем это
Код: Выделить всё
def doFile( self, fname ):
f = open(fname,"r")
for s in f.readlines() :
self.doCommand( s )
f.close()
заменить на
Код: Выделить всё
def doFile( self, fname ):
self.doCommand( 'SP,0\r' )
Re: Графити бот и блок управления EggBot
Добавлено: 21 июл 2012, 23:24
2cme
Вот такая ошибка:
Код: Выделить всё
File "eggbot.py", line 1400
def doFile( self, fname ):
^
IndentationError: unindent does not match any outer indentation level
Re: Графити бот и блок управления EggBot
Добавлено: 22 июл 2012, 01:37
Nick
Поправь отступы, в питоне очень важно какой отступ с левого края. Можешь даже скопировать отступ с соседней функци.
Re: Графити бот и блок управления EggBot
Добавлено: 22 июл 2012, 07:11
2cme
Отступы исправил - работает. Даже поменял команду self.doCommand( 'SP,0\r' ) на self.doCommand( 'v\r' ) и отобразилась версия fw eeb. И эта команда тоже работает self.doCommand( 'TP\r' ).
Что дальше делать?
Re: Графити бот и блок управления EggBot
Добавлено: 23 июл 2012, 09:52
Nick
Скинь свой файл, подготовленный для eggbota... посмотрим может там что-то не так...
Может нужно \n из каждой строчки убрать.
о, кстати, попоробуй выполнить 10 каких-нибудь команд - может там какого-нибудь ответа надо дождаться... хотя вроде ответ ждет doCommand
Re: Графити бот и блок управления EggBot
Добавлено: 23 июл 2012, 10:18
2cme
Nick писал(а):о, кстати, попоробуй выполнить 10 каких-нибудь команд - может там какого-нибудь ответа надо дождаться... хотя вроде ответ ждет doCommand
Да после выполнения каждой команды приходит ответ "OK". Выполнил продрят несколько команд
Код: Выделить всё
self.doCommand( 'TP\r' )
self.doCommand( 'TP\r' )
self.doCommand( 'TP\r' )
self.doCommand( 'TP\r' )
self.doCommand( 'TP\r' )
self.doCommand( 'TP\r' )
self.doCommand( 'TP\r' )
self.doCommand( 'TP\r' )
self.doCommand( 'TP\r' )
В железе по факту выполнилось только 5. Нужно сделать так чтобы перед тем как выполнять следующую команду, дожидаться ответа OK.
Вот файлы:
Re: Графити бот и блок управления EggBot
Добавлено: 23 июл 2012, 10:35
2cme
Вот лог файл обмена данными (красным команды которые формирует комп, синим ответ платы EEB) при печате файла 1234.svg
Re: Графити бот и блок управления EggBot
Добавлено: 23 июл 2012, 11:41
Nick
Вот, что еще придумал: попробуй заменить
Код: Выделить всё
def doFile( self, fname ):
f = open(fname,"r")
for s in f.readlines() :
self.doCommand( s )
f.close()
на
Код: Выделить всё
def doFile( self, fname ):
f = open(fname,"r")
for s in f.readlines() :
pass
f.close()
Т.е. просто удрать docommand и вместо него pass. Может там в другом месте ошибка.
По идее
doCommand
ждет ответа:
self.serialPort.write( cmd )
response = self.serialPort.readline()
хотя может он просто пытается читать, если сразу ничего нет, то выдает ошибку
inkex.errormsg( 'EBB Serial Timeout.' )
можно конечно самим этот docommand переписать...
Попробуй сначала с pass если все будет ок - перепишем.
Re: Графити бот и блок управления EggBot
Добавлено: 23 июл 2012, 11:50
2cme
С pass отработало нармально.
Может значение в переменную s занесится некоректно?
Re: Графити бот и блок управления EggBot
Добавлено: 23 июл 2012, 11:56
Nick
А попробуй к команде self.doCommand( 'TP\r' ) добавить \n
т.е. сделать
self.doCommand( 'TP\r\n' )
а еще лучше сделать это в цикле, а еще лучше сделать несколько команд на перемещение в цикле. может и правда надо окончания команды дожидаться...
Re: Графити бот и блок управления EggBot
Добавлено: 23 июл 2012, 11:59
2cme
Nick писал(а):self.doCommand( 'TP\r\n' )
работает!
А как можно посмотреть что присваивается переменной s в цикле?
Re: Графити бот и блок управления EggBot
Добавлено: 23 июл 2012, 12:53
Nick
inkex.errormsg( "s=*%s*"%s )
Как-то так.
Но все равно не понимаю, почему комп может перезагружаться...