Перепрошивка Asuro Robot (Arexx) на OSX

Я сталкиваюсь с проблемами перепрошивки моего asuro на оссе лев.

После некоторых исправлений в источниках прошивки программы con_flash, как предлагается на некоторых форумах, он успешно скомпилирован.

ИК-устройство работает, я могу отправлять / получать данные в / из других блокнотов через screen команда. Я даже могу получать нативные ИК-сигналы от Асуро (такие как Starting XYZ-test...).

Робот точно не сломан, его можно свернуть на окнах. Это проблема OSX, записи форума указывают, что другие пользователи также имели проблемы. Но никакого решения не предусмотрено.

domain:asuro mike$ sudo con_flash /dev/tty.usbserial-AXWAUG8P Asuro\ 020.hex
ASURO Flash Copyright (c)2003-2004 DLR RM
ASURO Flash comes with
ABSOLUTELY NO WARRANTY
This program is free software
you can redistribute it and/or modify
it under the terms of the
GNU General Public License
as published by
the Free Software Foundation
either version 2 of the License
or any later versionASURO Flash Tool
Version 1.2
Author: Jan Grewe
(c)DLR 2003-20004
Linux Version

.
Open /dev/tty.usbserial-AXWAUG8P --> # always freezes here^Cdomain:asuro mike$

РЕДАКТИРОВАТЬ
Проблема заключается в открытии устройства через open команда. Даже не сработало, так как я жестко запрограммировал название устройства!

bool CPosixSerial::Open(char* port)
{
char text[256];

#ifdef LINUX
/*
#elif defined(Q_OS_IRIX)  || defined(_OS_IRIX_)
sprintf(portName,"/dev/ttyf%d",port+1);
#elif defined(Q_OS_HPUX) || defined(_OS_HPUX_)
sprintf(portName,"/dev/tty1p%d",port);
#elif defined(Q_OS_SOLARIS) || defined(_OS_SOLARIS_)
sprintf(portName,"/dev/ttyS%d",port);
#elif defined(Q_OS_ULTRIX) || defined(_OS_ULTRIX_)
sprintf(portName,"/dev/tty%02d",port+1);
*/
#else
#error Wrong OS only LINUX implemented
#endif

strcpy(m_portName,port);
m_portHandle = open ((const char*)m_portName, O_RDWR | O_NOCTTY);

if (m_portHandle == -1) {
sprintf(text,"Could not open %s\nAlready in use ?!?!\n",m_portName);
MyMessageBox(text);
return false;
}

// configure port settings
tcgetattr(m_portHandle, &CommConfig);

// 2400 Baud
cfsetspeed(&CommConfig, B2400);

// Data Size 8-Bit / 1 Stop Bit / No Parity / No Flow Control / Zero TimeOut
CommConfig.c_cflag = (CREAD | CLOCAL | CS8);
CommConfig.c_lflag = 0;
CommConfig.c_oflag = 0;
CommConfig.c_iflag = 0;
CommConfig.c_cc[VMIN] = 0;
CommConfig.c_cc[VTIME]= 0;

cfsetispeed(&CommConfig, B2400); // fix for osx
cfsetospeed(&CommConfig, B2400); // fix for osx

// Set DTR & RTS
ioctl(m_portHandle, TIOCMSET, TIOCM_DTR | TIOCM_RTS);

if (tcsetattr(m_portHandle, TCSAFLUSH, &CommConfig)) {
sprintf(text,"Can't write port settings on %s\n",m_portName);
MyMessageBox(text);
return false;
}

return true;
}

Я постараюсь выяснить, как screen на OSX работает, может быть, я могу адаптировать функционал.

1

Решение

Я использую новейшую версию con_flash (http://www.arexx.com/downloads/asuro/asuro_flash_linux_mac_src.zip) и имеют такую ​​же проблему.

Я нашел решение на немецком форуме Roboternetz:
http://www.roboternetz.de/community/threads/59640-osx-asuro-flash-tool?p=565801&viewfull = 1 # post565801

Вместо использования /dev/tty.usbserial* вы должны использовать /dev/cu.usbserial*, который явно не использует рукопожатие. Я не до конца понимаю разницу.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]