Wielkopolskie - Kabelek ECU -> PC
Anonymous - 13-03-2007, 15:36 Temat postu: Kabelek ECU -> PC Gdyby ktoś czuł nieodpartą potrzebę podłączenia się do PCta to, uruchomiłem dzisiaj kabelek i laptopa. Oprogramowanie podaje mnustwo informacji więc diagnostyka jest zdecydowanie łatwiejsza. Jak ktoś chętny to zapraszam.
Krzyzak - 13-03-2007, 16:03
jak masz TMO.exe, to i tak jest gorzej niz na Palma - soft jest do Eclipse USA i wiele rzeczy nie dziala jak powinno - m. in. raportowanie bledow
Anonymous - 13-03-2007, 17:39
Niestety TMO ale i tak daje nieco większe możliwości od mrugającego LEDa. Mam palma ale niestety Fujtsitsu Siemens wiec chyba nie będzie to działało.
Krzyzak - 13-03-2007, 19:50
Dlatego ja sprzedalem notebooka i kupilem Palma m515 - mniejszy, poreczniejszy i zuzyta bateria zyje 8 godzin - bo notebooka uzywalem juz tylko do testowania Mitsu, wiec nie bylo sensu wozic takiej kobyly. A oprogramowanie na Palma jest miodne i do tego dostepne zrodla - mozna samemu cos pozmieniac (bo i reszta softu do produkcji softu na Palma jest do sciagniecia za free).
saphire - 13-03-2007, 20:06
Gdyby ten soft na Palma działał także z GDI to osobiście bym go przepisał i przekompilował na normalnego Windowsa tak by ze zwykłego laptopa chodzi niestety w sytuacji gdy on nie obsługuje GDI to jakoś nie mam motywacji w tym względzie...
Anonymous - 13-03-2007, 20:44
saphire napisał/a: | Gdyby ten soft na Palma działał także z GDI to osobiście bym go przepisał i przekompilował na normalnego Windowsa tak by ze zwykłego laptopa chodzi niestety w sytuacji gdy on nie obsługuje GDI to jakoś nie mam motywacji w tym względzie... |
jak ktos na lapku chce korzystac z dobrodziejstw MMCD to jest przecie Palm Emulator - tez powinien dzialac
saphire - 13-03-2007, 22:16
Ale czy on aby na pewno obsłuży GDI ????
Anonymous - 13-03-2007, 23:32
a tego to nie wiem
mowie o samym MMCd
kabelek polutujesz za grosze (wersje do palma) a emulator do pobrania na stronie developerow palma
Anonymous - 13-03-2007, 23:51
Małe niedociągnięcie Palm Emulatora (przynajmniej tego co ja miałem) nie radzi sobie z kontrolerami i/o i audio tak przynajmniej piszą autorzy. MMCD odpalone na PE nie potrafiło połączyć się z ECU.
Czy jest gdzieś do ściągnięcia opis protokołu komunikacji dla ECU, gdyby mieć coś takiego to reszta jest już banalnie prosta.
P.s. Lapka nie sprzedam bo firmowy trzeba będzie dokupić 2 palma. Chyba że jest jakaś opcja żeby uruchomić MMCd na Windows Mobile. Mam POCKETLOOXA 420 ma RS232 tylkoproblem z softem.
Krzyzak - 14-03-2007, 08:07
Protokol gdzies widzialem - nawet kiedys probowalem samemu napisac soft, ale nic z tego nie wyszlo. Po prostu wysylasz bajt z kodem i odbierasz bajt lub dwa a potem je interpretujesz.
Tu fragment mojego softu z konkretnymi czujnikami:
// obroty silnika y = 31.25 * x
b = theApp.Put2ComPort(0x21);
d = 31.25*((int)b); cs.Format("%d", d);
m_csRpm = cs;
// temperatura chłodziwa y = -0.8 * x + 153.6
b = theApp.Put2ComPort(0x07);
d = (-0.8 * ((int)b)) + 153.6; cs.Format("%f.2", d);
m_csCoolant = cs;
// otwarcie wtryskiwacza y = 0.256 * x
b = theApp.Put2ComPort(0x29);
d = 0.256 * ((int)b); cs.Format("%f.3", d);
m_csInjection = cs;
// napięcie sondy lambda y = 0.0195 * x
b = theApp.Put2ComPort(0x13);
d = 0.0195 * ((int)b); cs.Format("%f.2", d);
m_csLambdaU = cs;
// otwarcie przepustnicy y = 100 * (x / 255)
b = theApp.Put2ComPort(0x17);
d = 100.0 * ((int)b / 255.0); cs.Format("%d", d);
m_csThrottle = cs;
Gdzie wrzuta do COM wyglada tak:
Kod: | if (m_bConnected) {
DWORD lpW = 0x00;
BYTE out = 0x00;
WriteFile(hCPort, &val, 1, &lpW, NULL);
if (lpW == 0) return 0x00;
WaitCommEvent(hCPort, &lpW, 0);
if (lpW & EV_RXCHAR) {
/*do { ReadFile(hCPort, &out, 1, &lpW, NULL); }
while (lpW == 1);*/
ReadFile(hCPort, &out, 1, &lpW, NULL);
}
return out;
}
return 0x00; |
oczywiscie wczesniej trzeba zrobic konekcje:
Kod: | csPortCom = "COM"+csPortCom+":";
hCPort = CreateFile(csPortCom, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
LPDCB lpdcb = new DCB();
lpdcb->DCBlength = sizeof(DCB);
lpdcb->BaudRate = (DWORD)atoi(csTransmission);
lpdcb->Parity = (DWORD)((csParity == "NONE")? 0 : 1);
lpdcb->ByteSize = (BYTE)atoi(csDataBits);
lpdcb->StopBits = (BYTE)atoi(csStopBits);
lpdcb->fAbortOnError = TRUE;
SetCommState(hCPort, lpdcb);
LPCOMMTIMEOUTS lpcto = new COMMTIMEOUTS();
lpcto->ReadTotalTimeoutConstant = (DWORD)atoi(csReadTimeOut);
lpcto->ReadTotalTimeoutMultiplier = 1;
lpcto->ReadIntervalTimeout = (DWORD)atoi(csReadTimeOut);
lpcto->WriteTotalTimeoutConstant = (DWORD)atoi(csWriteTimeOut);
lpcto->WriteTotalTimeoutMultiplier = 1;
SetCommTimeouts(hCPort, lpcto);
DWORD lpErr = 0x0; LPCOMSTAT lpC = new COMSTAT();
ClearCommError(hCPort, &lpErr, lpC);
if (lpErr & CE_BREAK) AfxMessageBox("Błąd połączenia szeregowego 1", MB_OK|MB_ICONERROR);
else if (lpErr & CE_FRAME) AfxMessageBox("Błąd połączenia szeregowego 2", MB_OK|MB_ICONERROR);
else if (lpErr & CE_TXFULL) AfxMessageBox("Błąd połączenia szeregowego 3", MB_OK|MB_ICONERROR);
else if (lpErr & CE_IOE) AfxMessageBox("Błąd połączenia szeregowego 4", MB_OK|MB_ICONERROR);
else if (lpErr & CE_MODE) AfxMessageBox("Błąd połączenia szeregowego 5", MB_OK|MB_ICONERROR);
else if (lpErr & CE_OVERRUN) AfxMessageBox("Błąd połączenia szeregowego 6", MB_OK|MB_ICONERROR);
else if (lpErr & CE_RXOVER) AfxMessageBox("Błąd połączenia szeregowego 7", MB_OK|MB_ICONERROR);
else if (lpErr & CE_RXPARITY) AfxMessageBox("Błąd połączenia szeregowego 8", MB_OK|MB_ICONERROR);
else m_bConnected = TRUE; |
Anonymous - 14-03-2007, 22:01
Jak ja nie lubie tego języka Przesiadłem się na VB NET i jakoś tak mi łatwiej. Jak znajde chwile czasu to się pobawie. Pytanie tylko czy po otwarciu portu można wysyłać rozkazy do odczytu konkretnych czujników czy najpierw trzeba wysłać jakąś komendę która zainicjuje połączenie w ECU ? I kwestia parametrów transmisji standard 9600,N,8,1 czy coś innego ? Trochę poguglałem i znalazłem jakieś info odnośnie aldl dla GM i tam dopuszczalne są tylko prędkości 2400 i 4800.
|
|
|