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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //...
    	iInitCommDevicePeriod = GetPrivateProfileInt(extraTunungLine, _T("InitCommDevicePeriod"), INIT_COMM_DEVICE_TIMER_PERIOD / 1000, extraFilePath) * 1000;
    	iReconnectSocketPeriod = GetPrivateProfileInt(extraTunungLine, _T("ReconnectSocketPeriod"), CONN_WITH_SOCK_LOST_TIMER_PERIOD / 1000, extraFilePath) * 1000;
    	m_uiCheckLoopPeriod = GetPrivateProfileInt(extraTunungLine, _T("CheckLoopPeriod"), CCC_LINE_CHECK_LOOP_TIMER_PERIOD / 1000, extraFilePath) * 1000;	
    //....

    Автор тот же...
    мистическая инициализация таймеров.
    зачем делить default value на 1000 перед посылкой в функцию, чтобы потом результат умножить на 1000. Может, чтобы время было в целых секундах?

    Запостил: ShuraKotov, 13 Февраля 2011

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

    • Видимо в конфиге значения в секундах, а дефолтовые константы и результат в миллисекундах.
      Вопрос к тому, что создает конфиг.
      Ответить
    • Потому, что значения в миллисекундах, а в реестре записаны секунды.

      Не говнокод.
      Ответить
      • В реестре не записано ничего - это файл, о котором должен знать только разработчик и техподдержка. Теперь если техник таки вписал этот ключ в файл и по доброте душевной сделал это в миллисекундах - таймер превращается в "вечность" а защиты от этого нет и не было. Уж если разработчик предполагает, что возможна такая ситуация - защита имеет место быть!!!
        Ответить
        • > это файл, о котором должен знать только разработчик и техподдержка
          нордические тунунги настолько суровы?
          Ответить
        • Ну значит файл. В конфигурационном файле задержка указывается в секундах (не в минутах! не в днях! не в наносекундах!). Так удобнее. Системные функции же принимают аргумент (таймаут, задержка) в миллисекундах. Поэтому внутри программы в переменных можно хранить значения в миллисекундах, чтобы не пересчитывать при каждом использовании.
          Ответить
          • таймеры ОДНОЗНАЧНО для коммуникации с "железом". Секундам, как единицам измерения, в этом случае в файле места нет
            Ответить
            • Т.е. задержки меньше секунды? Ну, может время требуется в микросекундах, а указывается в миллисекундах. Или требуется в наносекундах, а указывается в микросекундах. Смотрите доки по функциям, использующим эти параметры и по конфигурации программы.

              Если пользователь вынужден каждый раз писать три лишних нуля -- материть он будет разработчика. А если ВДРУГ масштаб параметров изменится -- придёт и надерёт ему задницу.
              Ответить

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