URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7796
[ Назад ]

Исходное сообщение
"Debian, управление Lpt портом"

Отправлено zigli , 24-Дек-08 10:06 
Нашел пакет индикации загрузки процессора диодами через порт принтера http://packages.debian.org/etch/ledstats
А как его переделать так чтобы управлять морганием диодов в ручную,
включить/отключить определенный диод?

Содержание

Сообщения в этом обсуждении
"магия! не пытайтесь повторить это дама!"
Отправлено Andrey Mitrofanov , 24-Дек-08 10:20 
>А как его переделать так чтобы управлять морганием диодов в ручную,
>включить/отключить определенный диод?

Мой маленький друг!

Эта сложная задача называется програмированием. И делают её специально обученые люди - програмисты. Они берут исходные тексты http://packages.debian.org/source/etch/ledstats програмы, (ужас!ужас!ужас!) меняют их, собирают из изменённых исходных текстов Новую Програму, потом кладут эту програму в пакет и дают её Людям.

Ищите програмиста, верьте в Чудо -- и оно произойдёт! B-j


"магия! не пытайтесь повторить это дама!"
Отправлено zigli , 24-Дек-08 16:31 
>[оверквотинг удален]
>>включить/отключить определенный диод?
>
>Мой маленький друг!
>
>Эта сложная задача называется програмированием. И делают её специально обученые люди -
>програмисты. Они берут исходные тексты http://packages.debian.org/source/etch/ledstats програмы, (ужас!ужас!ужас!) меняют их, собирают
>из изменённых исходных текстов Новую Програму, потом кладут эту програму в
>пакет и дают её Людям.
>
>Ищите програмиста, верьте в Чудо -- и оно произойдёт! B-j

:) Чудо произошло!!!

наперепрограммировал все-таки
думаю кому-нить поможет

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

#include <parportled.h>

int main(int argc,char* argv[])
{.
    led_setperm();

    int val,port;

    if(argc<3){
         fprintf(stderr,"usage: %s port value\n",argv[0]);
         exit(1);
    }.
    if(sscanf(argv[1],"%i",&port) && sscanf(argv[2],"%i",&val)){
         if(val == 1){
             short led_num = -1;
             if (isdigit(port))
                  led_num = port - '0';

             if (led_num == -1)
                  led_on_all();
             else if ((led_num >= 1) && (led_num <= 8))
                  led_on(led_num);
         }

         if(val == 0){
              short led_num = -1;
              if (isdigit(port))
                led_num = port - '0';

              if (led_num == -1)
                led_off_all();
              else if ((led_num >= 1) && (led_num <= 8))
                led_off(led_num);
         }
    }else{
         fprintf(stderr,"port and value must be in hex format with 0x prefix\n");
         exit(1);
    }
    exit(1);
}

Так же необходим пакет http://packages.debian.org/etch/libparportled

Работает так
./led_on_off 1 1  // зажигаем первый диод
./led_on_off 1 0  // тушим первый диод
и т.д.