***************************************************************************** * HISTORY FILE * * * * Project: ethernet Camera emulator * * Group: Pi of the Sky * * Subgroup: Warsaw University of Technology, Faculty of Physics * * Author: Janusz Uzycki * ***************************************************************************** ---------------------------------------------------------------------------- instalacja programu: make pre-install (skopiuje biblioteki cfitsio) make (skompiluje program) make install (zainstaluje skompilowany program) make clean (pozamiata i posprzata :) skladnia: nudpsim [-debug level] [fits file] [config file] ---------------------------------------------------------------------------- notes: (*) to do (!) warning ---------------------------------------------------------------------------- x5.09.03, major0,minor0,v4 (version 0.04) - dodalem wstepna strukture NUDP x5.09.03, major0,minor0,v5 (version 0.05) - podzielilem projekt na pliki: UDPsrv, NUDP, CAM oraz main.c i global.h - przetestowalem UDP - dziala poprawnie - dodalem definicje DEBUG(s) x5.09.03, major0,minor0,v6 (version 0.06) (!)- dodalem biblioteke cfitsio, z racji srodowiska w jakim w tej chwili pracuje (Knoppix CD) jest ona jako static (-static w makefile) - zmodernizowalem stosownie makefile, robiac odpowiednie porzadki w strukturze katalogow projektu - napisalem obsluge (ladowanie) FITs-ow przy uzyciu biblioteki cfitsio (./nudpsim [FITS file], jesli sie nie poda pliku to dane beda "puste") (!)- rozwiazalem problem kompilacji statucznej, istotna jest kolejnosc bibliotek z -lm!!! - testy ladowania FITSow - ok x5.09.03, v0.07 - wylaczylem DEBUG_PORT_TOOL celem dystrybucji programu w swiat do testow emulatora - ulepszylem debugowanie dodajac showRaw z Ziloga... - poprawiony NUDP checksum (kod U2) x5.09.04, v0.08 - przetestowalem zrzut danych (pustych) - dziala, po komendzie FF 00 07 F9 00 00 00 00 (sadze, ze po testach ja usune, dla zwiekszenia marginesu bezpieczenstwa transmisji, np. PC<->PC... - wystarczy ze jest stosowna komenda 0x08) - poprawilem drobny blad w showRaw (tylko dla estetyki - nic wiecej) - dodalem wstepna analize komend (pierwszego bajtu) kamery zgodna z wersja na USB oraz dlugosci bloku danych kazdej komendy x5.09.05, v0.09 x5.09.07, v0.09 x5.09.08, v0.09 - dodalem opisy do plikow *.c, co robia - dodalem w CAM.h nowe komendy, zakomentowalem nieaktualne dla ethernetu - utworzylem plik CONFIGF.c do wczytywania konfiguracji kamery - zmienilem port na 23567, zgodnie z NUDP 1.043 - NUDP liczy juz zawsze sume kontrolna - poprawilem w UDPserv.c - UDPserv: zamienilem numer pakietu na adres poczatkowy w pamieci (zgodnie ze zmiana w NUDP 1.043) - uzupelnilem program o wczytywanie pliku konfiguracyjnego - zakomentowalem rozkaz (odbieranie i przetwarzanie) top=7 z komputera, uzywany jedynie do testow symulatora x5.09.11, v0.10 - zgodnosc z NUDP 1.044 - zmiany nazewnictwa w pliku konfiguracyjnym i okolicach: string->dev_name, YMDN->YMDV - rozbudowalem obsluge komend w CAM.c, wiecej teraz wyswietla informacji, silniej filtruje komendy - dodalem watchdog zblizony do tego w rzeczywistej kamerze x5.09.17, v0.11 - poprawilem w opcjach debug data_len z %u na %d (bylo zle wyswietlane dla bledow: data_len = -1...) - poprawilem niezgranie data_len z CAM.c z NUDP.c przy rozpoznawianiu komend, teraz sens data_len jest bardziej jednolity dla pakietow przychodzacych jak i wychodzacych - (projekt-zrodlo) katalogi lib i include przenioslem na zewnatrz katalogu wersji, jak ma to miejsce z przykladowym z.fit, jednak tutaj posluzylem sie dowiazaniami x5.09.19, v0.11b - usuniety sleep(1) z RAW dump - gotowe do testow x5.09.23, v0.12 - dodalem ncurses, zmienilem klawisz wyjscia na q x5.09.24, v0.13 - z powodow problemow na niektorych komputerach zrezygnowalem z wkompilowanej ncurses (!)- dodalem inny sposob wychodzenia z programu: q (!)- debugowanie na zadanie: opcja -debug , im level wieksze tym wiecej wypisuje: none 0, CAM_CMD_RAW 5, CAM_CMD_OUT 7, NUDP_ANSWER 10, NUDP_CKECK 12, PKT_RECEIVE 20, PKT_RESPONSE 30, PKT_DUMP 40, PKT_DUMP_SLEEP 50 - spradzilem ID kamery - wg mnie jest w porzadku! tj. zgodnie z dokumentacja kolejnosc bajtow w slowie ID jest zgodna z notacja intelowska czyli najpierw LowByte a potem HighByte, np. id_number = 12, ID: 0c 00 (stad pierwszy bajt wg wszelakiej dokemntacji to ustawienie DIP-switch'a, a drugi 0x00!) (!)- temperatura: komenda 0x07 0x03 (CCD cooling) posiada korekte: stopnie = bin - 127 (bin jest 8 bitowe, bin - wartosc odebrana z NUDP, stopie - wartosc wyswietlana) komenda 0x0A i 0xAA (status) posiadaja korekte: bin = stopnie + 128 (bin jest 8 bitowe, stopnie - wartosc odczytana z pliku konfiguracyjnego, bin - wartosc wysylana w statusie) (!) 16 bitowych pol tempteratury nie ruszam wcale, stad dokladnie takie jak w pliku konfiguracyjnym! x5.09.26, v0.14 - skorygowalem debug: fill RAW data, debug_level: FILL_RAW 9 x5.10.23, v0.15 - numerowanie pakietow data RAW wg adresu, ale nie bajtami a slowami 16-bitowymi co daje zgodnosc z NUDP 1.045, wiec poprawda w NUDP.c (retransmisja), i UDPserv.c (dump) (!)- status znajdzie sie polu [data field NUDP]... (!)- uwaga: moze sie zdarzyc ze wyslemy rozkaz przesylania danych, zas kamera zignoruje go (przypisze RAW_dumping = 0 w drugim watku... - podobnie moze byc w rzeczywistej kamerze, gdy szybko zaraz po odczycie wyslemy te komende, sterowanik powinien to uwgledniac - jednak i tak powinien on sie opierac na technice timeout...) (*)- trzeba sprawdzic czy dane z FITS-a sa wczytane wlasciwie... - okaze sie pozniej jak bardzo poprawnie... x6.07.03 - uzwglednilem uwagi Roberta Suleja: port UDP z 23567 na 1234, bo tak zostalo zaimplementowane w sprzecie uzwglednilem bit statusu