Неужели MT не поддерживает десятичные дроби?? [admin@MikroTik] interface> :put (5 / 2) 2 С какого же дня 5 / 2 = 2? Я пытаюсь распарсить координаты GPS и преобразовать их обратно в десятичные. Вот пример скрипта, но дальше продвинуться не могу, потому что математика сломана.
:global gps [/system gps monitor as-value]
:put ($gps -> "date-and-time")
:put ($gps -> "longitude")
# Парсинг долготы
:global long1 [:find ($gps -> "longitude") " " 0]
:global long2 [:find ($gps -> "longitude") " " $long1]
:global long3 [:find ($gps -> "longitude") "'" $long2]
:global long4 [:find ($gps -> "longitude") "''" $long3]
:global degrees [:tonum [:pick ($gps -> "longitude") $long1 $long2 ] ]
:global minutes [:tonum [:pick ($gps -> "longitude") $long2 $long3 ] ]
:global seconds [:tonum [:pick ($gps -> "longitude") ($long3 + 2) $long4 ] ]
:env print
# Должно вывести десятичную долготу.
:put ($degrees + ($minutes/60) + ($seconds/3600)) Получаю вот это: “gps”={“date-and-time”=“jun/11/2008 18:19:25”; “longitude”=“W 117 12’ 55’'”; “latitude”=“N 33 13’ 49’'”; “altitude”=“191.399994m”; “speed”=“0.111120 km/h”; “valid”=true} “long1”=1 “long2”=5 “long3”=8 “long4”=12 “degrees”=117 “minutes”=12 “seconds”=55 [master@cip-home] /system gps> :put ($degrees + ($minutes/60) + ($seconds/3600)) 117 Что случилось с моими десятичными?! Если я смогу это заставить работать, у меня есть скрипт, который будет загружать местоположение GPS вашего роутера на серверы GpsGate.com, чтобы вы могли отслеживать местоположение всех GPS-роутеров.
Сэм
:global gps [/system gps monitor as-value]
:put ($gps -> "date-and-time")
:put ($gps -> "longitude")
# Парсинг долготы
:global long1 [:find ($gps -> "longitude") " " 0]
:global long2 [:find ($gps -> "longitude") " " $long1]
:global long3 [:find ($gps -> "longitude") "'" $long2]
:global long4 [:find ($gps -> "longitude") "''" $long3]
:global degrees [:tonum [:pick ($gps -> "longitude") $long1 $long2 ] ]
:global minutes [:tonum [:pick ($gps -> "longitude") $long2 $long3 ] ]
:global seconds [:tonum [:pick ($gps -> "longitude") ($long3 + 2) $long4 ] ]
:env print
# Должно вывести десятичную долготу.
:put ($degrees + ($minutes/60) + ($seconds/3600)) Получаю вот это: “gps”={“date-and-time”=“jun/11/2008 18:19:25”; “longitude”=“W 117 12’ 55’'”; “latitude”=“N 33 13’ 49’'”; “altitude”=“191.399994m”; “speed”=“0.111120 km/h”; “valid”=true} “long1”=1 “long2”=5 “long3”=8 “long4”=12 “degrees”=117 “minutes”=12 “seconds”=55 [master@cip-home] /system gps> :put ($degrees + ($minutes/60) + ($seconds/3600)) 117 Что случилось с моими десятичными?! Если я смогу это заставить работать, у меня есть скрипт, который будет загружать местоположение GPS вашего роутера на серверы GpsGate.com, чтобы вы могли отслеживать местоположение всех GPS-роутеров.
Сэм
