Jak pisałem, nowy driver od konwertera PL2303 nie działa, w Windows 10 trzeba było zainstalować starszą wersję i działało, w Windows 11 ta starsza wersja nie działa, a nawet zawiesza komputer.
Ponieważ zawziąłem się, przeprowadziłem kilka testów, między innymi zainstalowałem Arduino IDE, które oprócz oczywistych funkcji ma wbudowany bardzo zgrabny i prosty monitor portu szeregowego.
Chciałem tylko coś sprawdzić, ale zwróciło moją uwagę, że instalator Arduino pytał czy zainstalować jakieś prywatne sterowniki portu szeregowego i to mi dało do myślenia...
Chodzi zasadniczo o ploter do cięcia folii. Uwziąłem się, że zarówno pod Linuksem, jak i pod Windows zrobię taki numer, żeby plik w formacie HPGL można było wyciąć bez użycia żadnego programu, tylko poleceniem systemu operacyjnego listującym plik do portu szeregowego.
Tak dla zasady, żeby sobie udowodnić że potrafię...
Bardzo dawno temu robiłem taki numer pod Windows 98, ale to nic nadzwyczajnego bo to nakładka na DOS, pamiętam jednak że działało to też pod Windows XP, który jest NT i nie ma bezpośredniego dostępu do portów.
Chodzi o to, że na pulpicie umieszcza się odpowiedni plik BAT i upuszczając na niego plik HPGL powoduje się wycięcie pracy na ploterze.
Jak pisałem, było to naprawdę dawno i żadnych szczegółów nie pamiętałem.
Pod Linuksem zadziałało oczywiście z marszu, trzeba na pulpicie umieścić plik o dowolnej nazwie z atrybutem wykonywalności i następującą zawartością:
Kod: Zaznacz cały
#!/bin/bash
stty 9600 -F /dev/ttyUSB0
cat $1 > /dev/ttyUSB0
W systemie Windows działa komenda MODE ustawiająca parametry portu szeregowego, ale zaleca się robić to przez menadżer urządzeń, więc to pominąłem. Ponadto w Windows nie ma atrybutu wykonywalności tylko rozszerzenie, więc plik na pulpicie może mieć dowolną nazwę, ale z rozszerzeniem BAT, na przykład TNIJ.BAT o zawartości:
Kod: Zaznacz cały
@ECHO OFF
TYPE %1 > COM3
Czyli w sumie to samo co pod Linuksem, tylko inaczej zapisane.
No i ten skrypt pod Windows 11 nie działa...
Na początku myślałem że to kwestia drajwerów, albo zablokowanego dostępu do portu, ale sprawa się w końcu wyjaśniła.
Otóż wystarczy uruchomić Arduino IDE, otworzyć i zamknąć monitor poru szeregowego, zamknąć Arduino i... skrypt zaczyna działać a ploter ciąć...
No to teraz czekam na opinię miłośników "najlepszego systemu operacyjnego jaki kiedykolwiek wynaleziono"...
Jak można spieprzyć rzecz tak prostą?
I nie piszcie mi więcej, że pod Windows wszystko działa, a w Linuksie to droga przez mękę...
Dodane 1 godzina 49 minuty 36 sekundy:
A jednak nie chodziło o sterowniki.
Problem polega na tym, że w menedżerze urządzeń można sobie ustawiać parametry portu do woli i bez większego skutku...
Dodałem tę linię której nie powinno się dodawać i zaczęło działać...
Kod: Zaznacz cały
@ECHO OFF
MODE COM3:baud=96 parity=n data=8 stop=1 to=off xon=off odsr=off octs=off dtr=off rts=off idsr=off
TYPE %1 > COM3