Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Moderator


Сообщения: 3036
Благодарности: 1000

Профиль | Сайт | Отправить PM | Цитировать


Никак не могу довести до ума одну, казалось бы простую вещь...

Имеем переменную $InetSpeed которой присваивается определённое значение каждую секунду, как можно догадаться, эта переменная содержит данные о скорости закачки файла.

Вот по завершению закачки, мне нужно узнать среднюю скорость за этот промежуток закачки.

Я сделал, наверное (хотя точно) не правильно, но вот что у меня получилось...

Я засёк самую большую видимую скорость, самую маленькую, и вычеслил золотую середину среди них:

Код: Выделить весь код
$LowsetSpeed = 0
$HighestSpeed = 0
$TempLowsetSpeed = 0
$TempHighestSpeed = 0

While @InetGetActive
    $InetGetBytesRead = @InetGetBytesRead

        ;Получаем скорость закачки (кб' в секунду)
    $InetSpeed = 170;Тут идёт функция _InetGetSpeed(1000) - подсчитывает скорость закачки в секунду. Возвращается скорость/в сек.

        $TempLowsetSpeed = $InetSpeed
    $TempHighestSpeed = $InetSpeed

        If $TempLowsetSpeed < $LowsetSpeed Or $LowsetSpeed = 0 Then $LowsetSpeed = $TempLowsetSpeed
    If $TempHighestSpeed > $HighestSpeed Or $HighestSpeed = 0 Then $HighestSpeed = $TempHighestSpeed
WEnd

$AverageDownloadSpeed = Round(_GetAverageSpeed($LowsetSpeed, $HighestSpeed)/1024)

Func _GetAverageSpeed($LowsetSpeed, $HighestSpeed)
    Return ($LowsetSpeed / 2) + ($HighestSpeed / 2)
EndFunc

В общем в результате, если самая большая скорость была 190, а самая маленькая 65, то просто 190 делим на 2, 65 тоже делим на 2, и прибавляем результаты (получаем 127,5)...

Но я не уверен что это правильное решение, полагаю нужно в процессе (в цикле) засикать наиболее замеченные данные о скорости, и уже между ними подсчитывать среднее значение - но как это реализовать корректно, я не могу никак сообразить

Кто может, имеет время, помогите плиз разобраться

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 03:25, 11-06-2007 | #8