Add support for flashing TellStick Duo

This commit is contained in:
Micke Prag 2012-04-20 14:34:15 +02:00
parent 7e287a6079
commit 00f95d22e1

View file

@ -56,6 +56,12 @@ bool TellStick::isUpgradable() const {
if (firmware < 6) { if (firmware < 6) {
return true; return true;
} }
} else if (type() == 2) {
//TellStick Duo
if (firmware < 5) {
return true;
}
} }
return false; return false;
} }
@ -66,7 +72,11 @@ void TellStick::aquireTellStick() {
strcpy_s(tempSerial, serial().size()+1, serial().toLocal8Bit()); strcpy_s(tempSerial, serial().size()+1, serial().toLocal8Bit());
#else #else
strcpy(tempSerial, serial().toLocal8Bit()); strcpy(tempSerial, serial().toLocal8Bit());
FT_SetVIDPID(0x1781, 0x0c30); //TODO: Make dynamic for TellStick Duo int pid = 0x0C30;
if (type() == 2) {
pid = 0x0C31;
}
FT_SetVIDPID(0x1781, pid);
#endif #endif
FT_STATUS ftStatus = FT_OpenEx(tempSerial, FT_OPEN_BY_SERIAL_NUMBER, &d->ftHandle); FT_STATUS ftStatus = FT_OpenEx(tempSerial, FT_OPEN_BY_SERIAL_NUMBER, &d->ftHandle);
delete tempSerial; delete tempSerial;
@ -75,11 +85,11 @@ void TellStick::aquireTellStick() {
} }
//open = true; //open = true;
//if (this->field("pid").toInt() == 0x0C31) { if (type() == 2) {
// FT_SetBaudRate(ftHandle, 115200); FT_SetBaudRate(d->ftHandle, 115200);
//} else { } else {
FT_SetBaudRate(d->ftHandle, 9600); FT_SetBaudRate(d->ftHandle, 9600);
//} }
FT_SetFlowControl(d->ftHandle, FT_FLOW_NONE, 0, 0); FT_SetFlowControl(d->ftHandle, FT_FLOW_NONE, 0, 0);
FT_SetTimeouts(d->ftHandle,1000,0); FT_SetTimeouts(d->ftHandle,1000,0);
@ -113,10 +123,10 @@ void TellStick::enterBootloader() {
void TellStick::downloadFirmware() { void TellStick::downloadFirmware() {
QString filename = "TellStick"; QString filename = "TellStick";
int bootloaderStart = 0x3A00; int bootloaderStart = 0x3A00;
/*if (this->field("pid").toInt() == 0x0C31) { if (type() == 2) {
filename = "TellStickDuo"; filename = "TellStickDuo";
bootloaderStart = 0x7A00; bootloaderStart = 0x7A00;
}*/ }
QString path; QString path;
//if (QApplication::arguments().count() > 1) { //if (QApplication::arguments().count() > 1) {
// path = QApplication::arguments().at(1); // path = QApplication::arguments().at(1);
@ -163,7 +173,11 @@ void TellStick::rebootTellStick() {
} }
void TellStick::connectTellStick() { void TellStick::connectTellStick() {
tdConnectTellStickController(0x1781, 0x0C30, this->serial().toUtf8()); int pid = 0x0C30;
if (type() == 2) {
pid = 0x0C31;
}
tdConnectTellStickController(0x1781, pid, this->serial().toUtf8());
setUpgradeStep(-1); setUpgradeStep(-1);
emit upgradableChanged(); emit upgradableChanged();
emit upgradeDone(); emit upgradeDone();
@ -315,5 +329,9 @@ int TellStick::parseHex(const QByteArray &characters, int start, int length) {
void TellStick::upgrade() { void TellStick::upgrade() {
setUpgradeStep(0); setUpgradeStep(0);
tdDisconnectTellStickController(0x1781, 0x0C30, serial().toUtf8()); //TODO: Make dynamic for TellStick Duo int pid = 0x0C30;
if (type() == 2) {
pid = 0x0C31;
}
tdDisconnectTellStickController(0x1781, pid, serial().toUtf8()); //TODO: Make dynamic for TellStick Duo
} }