Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Własny sterownik pod Windowsa

GienekS 25 Oct 2008 13:02 9492 41
  • #1
    GienekS
    Level 32  
    Witam. Jak napisać własny sterownik pod Windowsa, który konkretnie z programu Paint umożliwi "wysłanie" poprzez mechanizm wydruku, aktualnego obrazka do tego urządzenia (tablica na LED) ? Urządzenie to będzie podpięte do portu szeregowego. Chociaż przypuszczam że rodzaj interface jest już mniej istotny. Czy taki sterownik to jest duże wezwanie ?
    A może ktoś był by w stanie takie coś napisać ?

    W C piszę programy do mikrokontrolerów ale na PC i jeszcze w dodatku pod Wina, to już słabiej.

    Proszę o pomoc.
  • #2
    lucask87
    Level 15  
    Takie rzeczy to najlepiej byłoby napisać w assemblerze, ew. dokładając do tego jakieś GUI napisane w VC++, C# lub javie. Niedawno na uczelni przy programowaniu mikrokontrolerów rozmawiałem z prowadzącym o podobnym pomyślę i zasugerował mi taką kolejność działań, niestety na razie nie wiem do końca, jak to stworzyć ;) niemniej to nie będzie lekkie zadanie - obsługa portów, przerwań itp...
  • #3
    GienekS
    Level 32  
    Te sprawy nie są mi do końca obce. Byle wiedzieć jak to zrobić, jak wygląda mechanizm tworzenia i zainstalowania sterownika pod Wina.
  • #4
    tzok
    Moderator of Cars
    Dlaczego chcesz to zrealizować jako sterownik? Oczywiście można to zrobić jako sterownik drukarki, ale o wiele łatwiej będzie napisać osobny program, który wyśle obrazek BMP o odpowiednich rozmiarach do sterownika wyświetlacza LED przez port szeregowy.
  • #5
    GienekS
    Level 32  
    Teraz tak to mam rozwiązane ale jest to mało komfortowe, bo po zmianie obrazka muszę go zapisać a potem wywołać jakąś aplikacja, która to wyśle do wyświetlacza. O wiele wygodniejsza jest sytuacja kiedy jest em przykładowa w Paincie coś narysowałem czy poprawiłem ostatni obraz i robię krótko Print do tego wyświetlacza.
  • #6
    tzok
    Moderator of Cars
    Tylko przez sterownik drukarki albo zewnętrzna aplikacja monitorująca schowek (ctrl+c).
    Ew. można napisać aplikację w której można będzie edytować obrazek, która może nawet wyglądać jak Paint, ale będzie dedykowaną aplikacją do obsługi tego wyświetlacza.
  • #7
    GienekS
    Level 32  
    No tak ale to musiał bym napisać takiego Painta a to też nie takie proste.
  • #9
    User removed account
    User removed account  
  • #10
    GienekS
    Level 32  
    tzok wrote:
    Prostsze niż napisanie sterownika drukarki...
    A w czym to pisać żeby było to takie proste ?
  • #11
    User removed account
    User removed account  
  • #12
    GienekS
    Level 32  
    Jak pisałem wcześniej C i jeszcze Pascal.
  • #14
    GienekS
    Level 32  
    tego nawet nie mam i nigdy w nim nie pisałem.
  • #15
    shadoweyes
    Level 20  
    Można napisać w Delphi(następca Pascala) lub C++ Builder(C++ pod Windows) jest do nich wiele komponentów, które bardzo ułatwiają sprawę.

    Dodano po 20 [minuty]:

    Do pisania sterowników pod Windows wykorzystuje się DDK(Device Development Kit). Kiedyś miałem ksiażkę w postaci helpa pod tytułem " The Windows 2000 Device Driver Book". Ale szukająć w google po DDK napewno coś znajdziesz.
  • #16
    GienekS
    Level 32  
    shadoweyes wrote:
    Można napisać w Delphi(następca Pascala)
    tak tylko on nie obsługuje portów tak jak się to działo w Pascalu. Dla niego "port" to nie to samo co w Pascalu.
  • #17
    tzok
    Moderator of Cars
    Bezpośrednie odwołania do portów w WinXP/Vista są zabronione, do komunikacji przez port szeregowy trzeba wykorzystywać API. Są gotowe komponenty do komunikacji przez port COM/LPT, np. Indy.
  • #18
    shadoweyes
    Level 20  
    Nie to samo ale są komponenty (sterowniki odblokowujące porty w Windows), które robią to samo co "port" i wiele więcej np. NTPort, DLPortIO, Porttalk, UserPort, ComPort i wiele innych.

    Dodano po 3 [minuty]:

    Pisząc wykorzystując DDK nie masz ograniczeń, jednak niewiele osób to wykorzystuje, bo to bardzo skomplikowane.
  • #19
    GienekS
    Level 32  
    Widzę z tej całej dyskusji że jedynym wyjściem w mojej sytuacji będzie napisać aplikację, która co jakiś czas będzie czytać określony(e) pliki i wysyłać je przez RS-a do mojego wyświetlacza. Bo to wiem i potrafię jeszcze zrobić.
  • #20
    tzok
    Moderator of Cars
    ...a co innego chciałbyś zrobić? W równie prosty sposób można napisać aplikację monitorującą schowek systemowy.
    Co rozumiesz pod pojęciem "sterownik"? Nie widzę innej możliwości jak sterownik drukarki, ew. sterownik ekranu. W Windows są klasy urządzeń i każda klasa urządzeń ma zdefiniowany interfejs, którego implementacją jest sterownik (w uproszczeniu). Można stworzyć własną klasę urządzeń ale z takiego sterownika będzie mogła korzystać wyłącznie dedykowana aplikacja. Istnieje taka możliwość bo tylko sterownik ma bezpośredni dostęp do sprzętu, programy diagnostyczne (np. Everest) często instalują w systemie jakiś swój sterownik, który umożliwia im niskopoziomową komunikację ze sprzętem. Ale nie można stworzyć sterownika jakiegoś własnego, niestandardowego urządzenia i liczyć na to, że standardowe aplikacje będą potrafiły zrobić z niego użytek.
  • #21
    shadoweyes
    Level 20  
    Można napisać coś podobnego do Acrobat Distiller.
  • #22
    chemicalkash
    Level 19  
    Może ten program okaże się pomocny:
    http://sourceforge.net/projects/imageprinter/
    Jest to sterownik, który pozwala na drukowanie dowolnego pliku do np. obrazu bmp. Jest to projekt open source więc jak się czujesz na siłach możesz dodać opcje wysyłania pliku wynikowego do wyświetlacza.
  • #23
    GienekS
    Level 32  
    tzok wrote:
    Co rozumiesz pod pojęciem "sterownik"?
    Sterownik-driver, jest to część oprogramowania zainstalowana w systemie i bezpośrednio odpowiadająca za przekazywanie danych z systemu do określonego urządzenia i na odwrót. Nie wiem jak to robi się w Windowsie, i dlatego pytam, ale myślałem że gdzieś to musi być opisane albo ktoś na pewno to potrafi zrobić, bo nie może to być znów tak skomplikowane że prościej jest napisać całą aplikację.

    Dodano po 9 [minuty]:

    arturkaszuba wrote:
    Jest to sterownik, który pozwala na drukowanie dowolnego pliku do np. obrazu bmp.
    Obraz bmp ja ma w Pancie, ja go muszę wysłać do mojego urządzenia o własnościach mnie znanych, a nie Pantowi i dlatego mówię o "sterowniku", który to wie jak interpretować mapę bitową aby miało to sens i mój wyświetlacz wyświetlał to co widać w Pancie na ekranie.

    Różnica w pomiędzy plikiem danych BMP a jego wydrukiem wydaje mi się że jest taka, że w pliku oprócz danych o konkretnym obrazie znajduje się jeszcze nagłówek, czego przy danych do druku już niema, bo drukarce te akurat dane nie są potrzebne, zresztą mojemu wyświetlaczowi też te dane o nagłówku nie są potrzebne.
  • #24
    User removed account
    User removed account  
  • #26
    GienekS
    Level 32  
    Marcin230 wrote:
    Wysyłasz tak często te grafiki na wyświetlacz, że musisz od razu z painta to robić?
    może nie tak często ale myślałem że było by to elegancko i szybko, Control-P i po krzyku. A tak Zapisz jako.. wpisać nową nazwę, zapisać, w dodatkowej aplikacji wybrać ten plik i wysłać. No to jest trochę klikania.
  • #27
    User removed account
    User removed account  
  • #28
    Samuraj
    Level 35  
    Marcin tak sobie czytam i czytam i już wiem o co chodzi Gienkowi.
    Podał przykład dla Painta, lecz mając sterownik do tego wyświetlacza uniezależnia się od konkretnej aplikacji. Dziś jest to Paint jutro Word. Print i to co na ekranie ma na wyświetlaczu.
    Wiem że można zapis do pliku a potem aplikacje która otwiera określony plik z określonej ścieżki i po problemie lecz tu bardziej chodzi o wykorzystanie wbudowanych standardów niż wymyślanie od początku koła.
  • #29
    User removed account
    User removed account  
  • #30
    GienekS
    Level 32  
    Marcin230 wrote:
    No i chyba nie da się ich tak normalnie wsadzić jako drukarka systemowa.
    Jaka systemowa !!! Piszemy, wymieniamy poglądy ale o czym innym myślimy. Chyba będę musiał zostać przy wysyłaniu plików, bo coś na temat sterowników pod Winda to chyba magia.