1. Си / Говнокод #3263

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    DWORD WINAPI readPort( LPVOID lpParam )
    {
            while (1)
            {
                    if (brkListen)
                            break;
    
            if (((Param*)(void*)lpParam)->port)
                    if (fgetc(((Param*)(void*)lpParam)->port)!=EOF);
                            ((Param*)(void*)lpParam)->count++;
            }
    
            return 0;
    }

    Кусок программы подсчёта импульсов с оптопорта. Мало того что так делать плохо, так ещё один косяк есть. RS232 ниже 64 бод в винде не держит. так и не выяснил в физике это дело или в оси. Под RTEMS 6.04 64 бод на ура считалось.

    Запостил: ursus, 19 Мая 2010

    Комментарии (9) RSS

    • хочу спросить а не запредельная ли это скорость для оптоволокна 64 бод (КО напоминает, что это 64 бит/сек)?
      и зачем делать её еще ниже ))
      Ответить
      • ненене. оптопорт в счетчиках электроэнергии и других устройствах используется как испытательный выход. полевая шина с ик диодом. он моргает.
        Ответить
        • все-равно неясно чем не устраивают стандартные скорости
          600/300/150/75 бод,
          кажись винда с ними абсолютно нормально работает
          да и в настройках COM портов в винде, кажись, ниже 75 не выставить
          Ответить
          • да, но счетчик выдаёт определённое число импульсов в минуту. для поверки испытательного выхода максимальную нагрузку мы можем собрать в сети 220 соответсвующую 64 бод.
            Ответить
    • глядя на конструкции вида ((Param*)(void*)lpParam)->port, хочется взять и уебать
      Ответить
      • Кстати, да, а зачем вначале приводить к (void*)?
        Ответить
        • warning hoho!
          Ответить
          • Мда... Ужасный виндоуз!
            Потому что на нормальных системах void* (а я по-другому Lpvoid не воспринимаю) приводится к любому указательному типу без всяких hoho.
            Ответить
    • Совершенно неправильно поднятый вопрос.
      Нужно было написать "кто найдёт здесь багу? что, только школьники и дрочеры собрались, а?".
      Ответить

    Добавить комментарий