Hej Jeśli to nie tu się powinienem zwrócić, to wybaczcie. Chciałem podłączyć procka pod port szeregowy w kompie i napisać program pod windowsa który by się umiał z prockiem dogadać, tzn w czasie działania programu procka. Pytanie brzmi: jaki język polecacie? W czym pisać? Mają być ładne windowsowe okienka. Słyszałem od informatyka, że w C++ można się pociąć i że można w Javie. Są jeszcze jakieś opcje?
Od assemblera poczawszy, a na roznych visualach typu VC++, VB, Delphi, .Net skonczywszy. Z tego co piszesz wynika, ze nie jestes zbyt biegly, wiec najlepiej skorzystaj z tego srodowiska, ktore najlepiej znasz, lub znasz kogos kto je zna i ci pomoze.
Witaj Ja moge polecić VisualBasic Miałem ten sam problem, co ty, a więc komunikację z prockiem po RSie. Najpierw pytałem znajomych zawodowych informatyków, któzy programują w Visual C++ i oni widzieli pewne problemy już na samym początku, czyli komunikacji z Com'em. Natomiast w VB okazało się to proste i mimo tego, że nie miałem pojęcia o pisaniu aplikacji pod Windows udało mi się ją wykonać.
Nie no chłopaki, teraz to mam problem w czym wybrać... Żartuje. Bardzo dzięki za podpowiedź. Zacznę pewnie od C++. I nie gniewajcie się, że pisze na tej grupie, ale jakoś mi sie wydaje, że informatycy (nie elektronicy) jakoś się portami nie interesują. Ale może się mylę. W każdym razie bardzo dzieki Pozdrawiam
Zalezy czy ma być darmowo czy nie. Ja bym osobiście polecił Pythona z biblioteką wx (okienka w windows i unixie) i pySerial (porty szeregowe w tych dwu systemach). Java też jest dobrym pomysłem.
Jeśli nie masz zamiaru stać się profesjonalnym programistą aplikacji dla Windows to wystarczy Visual Basic. W zasadzie lepiej .NET, ale i 6 będzie OK. Jakby co, to kawałek kodu mogę podesłać.
A jeśli zechcesz być "profi", to przejście na C# nie jest specjalnie trudne (choć nie licz, że zmiana języka zrobi z Ciebie "profi" :-)
Ewentualnie rozważ Delphi.
Java jest chyba raczej taka sobie do pisania "pod sprzęt".
W VB dokładasz do formy kontrolkę, i parę linijek kodu (inicjalizacja, wysyłanie, odczyt). IMHO znacznie prostsze w VB. W C++ chyba trzeba strumienie otwierać.
Jeśli (Visual) C++ to poszukaj w Sieci darmowej klasy CSerialPort. Może być, chociaż w moim przypadku metoda Open() źle ustawiała timeouty i musiałem to zrobić "na piechotę", aby soft działał niezawodnie. Jeśli C (czyli WinAPI), to poczytaj w MSDN-ie o funkcjach CreateFile(), ReadFile(), WriteFile() i kilku innych które mają w nazwie Get/SetComm. Pewnie przyda Ci się również darmowa funkcja EnumSerial (do znalezienia w Sieci), która zwraca tablicę wszystkich portów szeregowych zainstalowanych w systemie. Jeśli chodzi o Javę, to standard nie przewiduje (a przynajmiej nie przewidywał) czegoś takiego jak obsługa portów szeregowych. Aby dostać się do seriala, trzeba było korzystać z JNI (a więc z WinAPI, jeśli już jesteśmy przy Windows) - czyli w sumie było bardziej upierdliwie niż w czystym C. Chociaż np. IBM oferował (oferuje?) do swojego JRE/JDK odpowiedni zestaw klas. Podsumowując - masz do wyboru C albo C++. A w zasadzie to tylko C++, jeśli mają być okienka i chcesz *szybko* otrzymać coś jako-tako działającego.
A pisać to można w notepadzie i kompilować ulubionym kompilatorem. :-)
Gdzieś widziałem źródła serwera FTP pod Win* napisanego w assemlerze. Wcale nie był taki skomplikowany - program składał się głównie z wywołań funkcji WinAPI.
Najchętniej bym pisał w C++, ale słyszałem, że trzeba się będzie nauczyć prosić system o pozwolenie na cokolwiek a w VisualBasicu wygląda to podobno znacznie krócej, typu wyślij_na_port(). Prawdę mówili? P.S. Powyższe bardzo szczegółowe informacje bardzo się przydadzą, dzięki pozdrawiam
W C++ i w VB mniej więcej jest to samo. Z marszu samo się nie zrobi. Może i w VB jest prościej, ale jeśli się chce pokombinować, to - trzeba nieźle się nakombinować. ;-)
Wywołując funkcję WinAPI CreateFile() prosisz system o pozwolenie na zapis/czytanie do/z portu szeregowego. Jeśli VB otwiera, ot tak sobie, port zajety przez inną aplikację, to rzeczywiście będzie krócej. ;-) A tak na poważnie, chociaż nie znam VB, to sądzę, że kod VB będzie bardziej zwięzły, ponieważ z VB prawdopodobnie dostarczone są procedury "owijające" funkcje WinAPI i dostarczające programiście prostszy interfejs. Ale w związku z tym mniej uniwersalny.
Użytkownik "Jan Dubiec" snipped-for-privacy@SPAMTRAP.slackware.pl> napisał w wiadomości news: snipped-for-privacy@hs001.slackware.pl...
Ostatnie pytanie - mógłbyś sprecyzować co znaczy mniej uniwersalny? Mam nadzieję, że przy pisaniu nie muszę się zastanwiac czy pójdzie pod win98 a przy win2k to już nie?
Jeśli chodzi o VC i VB firmy MS to w obu dostępna jest kontrolka MSComm. Niezależnie czy pisze się VB czy VC identycznie się ją obsługuje. Jedyne różnice wynikają ze składni języka. Obsługa tej kontrolki jest tak prosta, że trudno coś zrobić źle.
Przykład w VB (ustawienie parametrów transmisji, otworzenie portu i wysłanie ciągu znaków): MSComm.Settings = "115200,n,8,1" MSComm.PortOpen = True MSComm.Output = "Ala ma kota."
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.