á áłáŤáá˛á áá ááĽá á´ááá áŚááŹá°áŽá˝ á¨LTE áá°áá˝á ááĽááľ ááááŤáľ ááłáŞáŤ á˛á°áŤ áĽááľáłá°á á°á°á áá˘
á°áá áá á¨á¤áá˛á˘ áááááľá á°á á á ááłáŞáŤáá˝á á˛áá áááłá ááŞá˛áŽ áľáááśá˝ á¨áľáá á´ááá áŚááŹá°á ááĽáą á áŁá áĽáŠ áĽáá°áá ááá¨áłáľ á á°ááŤáŠ á¨á´ááŽá áŚááŹá°áŽá˝á ááĽááľ á á°ááŤáŠ á¨ááŚááŤááŤá á áŤáŁá˘áá˝ áááááá ááá áá áᢠá á°ááłáłá áá, á˝áአááľ á¨áá ááłáŞáŤáá˝ áłááá á á°áťá áá á ááá áĽá ááŤá˝ á áá ááááľ áááłáľ áá á¨á áľ.
áá˛áŤáá áĽáááŤáá, áľáŤá á áŁá ááá áĽá áĽáááľ-á°áŽá á áá°áá, áá á˝ááŽá˝ áĽááłáá áá áĽá áĽáá´áľ áĽáá°ááłáá¸á áĽáááŤá˝ááá. áľááá
áĽáááľá˘
á ááá¨á°
ᨠLTE áááááľá ááĽááľ áááŤáľ á áŁá á¨á°ááłá°á ááłá ááᥠáľáááááá ááłáŞáŤ áĽá á¨áááŞáŤ á´ááá ááá¨áĽ á ááŚáľ áĽáá˛áá áľá á´ááá á ááłá áśááá áĽá á á áŤá áĽáŠ áááᤠáááááľá˘ á á°á¨ááŞá ááĽááą á áĽá ááááŤáśá˝ á°á˝áá ááŤáłáľá áá˝ááᥠá á´á áá áŤá á¨á°áááá˘áá˝ áĽááľáŁ á¨á á¨á áááł áááłáá˝áŁ á¨á´á áá° á´á áĽááłá ááĽááą á ááľááá áśááá ááááŤáľ á á¨áá°á áááł áááŤá áá˝ááᢠá á á ááá áá áĽá á á áŁá áĽá á¨áááłáá á˝ááŽá˝ áá¸á, áĽá á¨á´ááŽá áŚááŹá°á áĽáť á áľááá áááłá áá˝áá.
ááááŞáŤ áá á°áá áá á°ááĄá á¨áŚááŹá°áŽá˝ áľááŽá˝ áá ááááłáľ áĽáť áá, á ááĽáł á áľáአáá áááŞáŤáá˝á ááá°áą áĽá á¨ááŤá á¨ááĽááľ áááŞáŤ áá¤áśá˝á á ááľáłááť á°áĽá°á ááľáĽ ááá. ᨠlt ááľáááŽá˝á ááĽááľ ááááŤáľ á¨áĽá áááľá ááá áĽááłá á°áľáá áŁáááá á˝ááŠá áááłá.
á áá áĽáĽá¨áľ ááááŤáľ ááłááá˝á áŤá°á¨áááľ ááážáľ ááá áá°ááŁáŤáááľ áłááá áááľááľ ááĽááľ áá. áááłáᣠá ááááŠá áĽá áĽáŤááłááąá á°áá á ááááá ááá áááá ἠá¨á°á¨á᪠á°ááŁáŤá áŞáá¤á ááá reverse ssh ááááľ ááłá¨áť áĽá á áá áááá˘
á´áááŤá á°ááŁá
á á áááš áá áĽáá°á°ááá¸á
á¨á´áááŤá áľáŤá á áŁá ááá áá á, ááá á°á ááá áááᤠáľáá˝ áĽá°áááá. á¨á´áááŤá áááľááá˝ áĽá ááłáŞáŤáá˝ áá፠á á°áá áá á¨áłáá áá. áľááá ᣠá´áááŤá ááááŤá áŤáą ᣠá¨ááá áá á°áá˝ á áá
á á ááľ á¨áŚááľ áŽáááŠá°á áá á¨á°áá°á¨á° vim2 á H modems á áŠá á lt áááááśá˝ á¨ááĽááľ ááŤáŞ áŤáľááuawei e3372h - 153 á ááŤáł á¨á´ááŽá áŚááŹá°áŽá˝ (á¨á ááľ áĽáľá¨ n). áĽáá˛áá á UART á áŠá á¨á°ááá á¨ááá¤áľ ááá ፠ááá ááŤáá˝á ááá á á áľááá áá. á áááááąá á áá áá á¨ááĽááľ áááŞáŤáá˝á áŤáľáá
www.speedtest.net áĽá áĽáá°áá áŁáá á á¨á´á ááľáĽ á áľáááŁá¸á-
á áá á¨áĽ á csv á áá¸áľá˘ á¨ááŤá áá á ááááľ á á¨6 á°ááą á á˘áá áááŠá˘ áľá á°áśá˝ áŤá ᨠGPIO áá á¨á°ááááá á¤áá˘á˛ áĽáá áľááá áá áá˘
á¨áĽá áá á°áá˝ á áá á´áááŤá ááááŽá˝á á áá ááá አᢠááá áá á¨á°ááŁáŠ áľááá á áľááľá ááłáŤá. áááá ááá á ááľ áłáááľ á°á°áĽáˇá. áá á áĽáááą ááŚáľáľ áłáááłáľ áááˇá. áá á¨áá áĽáŤáŹ á áá áĽá á áłáá áĽááľá áĽáť ââáŤá°á¨ááŠáľá áĽáááł áááľ ááľáĽ á ááľááŁáľ áá.
áĽáá áá á°áá áá á¨ááĽááľ áááŞáŤ á áááááľá áĽá áááľááá ááá áá á áľááľá ááľáááąá áĽáá°áá áľáŠá¨áľ ááłáĽ áĽááááá ᣠáá á á á áá á áĽá á áááľáŁáᢠá ááąá á¨á°áá°á áľááá á ááá á¨á°áᨠááá á áá°áááᢠáľááá á áĽááá á áá˝ ááŤááľ áá á¨áĽáá˘
á ááá´áá¸á áĽá áááľ
áááááĽáŠ ááá áĽá ááá˝ áá. áľááá , áŤá ááá áአá áľá°áŤá¨áľ áĽá°áááá.
ááá áĽááłá á áá
ááá á¨ááłá°á áááľ áŁááá¨áá áááá ááŽáááľ á áááśá ááľáĽ ááá°áá á áá°ááŠ. áĽá á¨áá¨áĽáŠáľ áááľá ááŤááĽá á¨áá˝á ááá á¨áá ááłááá˝ áĽá áááľááá˝ áľááá አááᢠáľááá
ááá ááŽáá˝áá ááŽááŤááŽá˝ á áááśá ááľáĽ á¨áá°á á¨ááááŞáŤ ááá´á áĽááłááá
á áĽá áááá ᣠáĽá á˝ááłáŹá áááťáťá ááᢠáľá˝áśá˝á á ááľáá´ áá áá á°áľá°á ááá˘
áĽáá˛áá á áá°áą ááľáĽ áááśá áááľ á ááľ áľáŞáśá˝ 2 áĽá 3 áĽááłáá á°ááááĽáŠ ᣠá áá ááááŤáľ á áŚáľá°áá áá á°áááĽáŠá˘
á¨áááľáá á áááá˝
áá á-á ááŁá vim2
áĽáá° áá áá˝á á ááľ áá á á°ááł áŽáááá°á á°á°á áá˘
ááľáááľ á¤áľ áĽá á SMART-TV á áŁá áĽáŠáŁ áááá á¨áá˛áŤ ááŽá°á°áᣠááá áá ááá
á°ááŁá áĽá
á á áŁá á°áľáá áŤáááᣠááá áĽáá áᣠá áŁá á°áľáá á áá°ááᢠáááłá, ááá áľááá° áááá á ááľáŽááľ áá, áĽá ááááľ ááá°á á°á¨á áľááá° ááá áá, áĽá á áá
áá°á¨áľ ááá á°á á ááááľ áľá áŤááľá áááá á áááá˝ áĽá á á˝á¨ááŤáŞáá˝ á¨áá°á áĽáŤáľ áŤáá á á áŤá ááľáľá á áá°áĽá. áĽá á ááłááľ á˝ááŽá˝ á¨áá
á¨ááłáŞáŤ áľáááľ á¨áŠá¤áľá˘ áááá˝ áá á¨á°ááá áá¸á áĽáŹ áĽáááłáá, áľááá
áá°ááš á áá
á°ááł áá áĽáá°á°á á áá á áá°áŠá. á á°á¨ááŞá á áŁá á°áŤá áĽá á¨á°á áłá°á á°ááśá˝ á ááľ, áľááá
áĽáŤááłááą ááś áĽáá á áśáá°áŽá˝ ááľáĽ ááááá áĽá áá ááľáˇá. ᨠGPIO áá áŤáá á°áŤ áĽáŤ áĽááłá áĽá á°á ááľáˇá. áááłá, LED á ááááááľ áĽá á°ááłáľ áá
áśáĽáá. ááá áá, á°á¨áŁá áááá, á áá á¨áą, áá ááááľ áá á-áŚááľ áĽáá°áá ᨠá áľááá á ááá á¨á, ááá ááá ááľáŤáą áĽá á¨áŠá¤áľá˘ áá°áŚá˝ áá áŠ.
á ááááŞáŤ, á áá á°ááł áá ááááľá ááŤá á ááĽá. áááá á°á áĽá áĽáá˛áá áá áá áá á-áŚááľ áľáááľá ááááá¨áą áá á¨á°ááľ áąáá áááá¨áľ ᣠáá áá áááŤá áĽá˝ááá á˘
ááááľá áááŤá áááľ á ááŤáŽá˝ á áᥠá ááŤá á¤áľá˛ áŤááľ ááá á ááľáŁá á¤áá¤áᲠááᢠá¨áŤááą áá áĽáá´áľ áĽáá°áá°áŤ áááá á ááľ áá˝áľ á áłáááŠ, áľááá á á¤áá¤áᲠáá áááŤá áá°ááŠá, ááá áĽááłá áŤá áĽááĽá á¨áá áŤááľ áá ááľáŤáľ á áŁá ááá áááá.
áľá firmware
- á¨ááłáŞáŤ áá áá¤áá˛áĄ <â> áá17 á¨áŞá¤áá¤áľ GPIO
- á¨ááłáŞáŤ áá TXDᥠ<â> áá18 á¨áŞá¤áá¤áľ GPIO (Linux_Rx)
- á¨ááłáŞáŤ áá RXDᥠ<â> áá19 á¨áŞá¤áá¤áľ GPIO (Linux_Tx)
- á¨ááłáŞáŤ áá áŞá˛á˛áĄ <â> áá20 á¨áŞá¤áá¤áľ GPIO
á¨á፠á áá, firmware á á ááááá
áá
á ááááá áááľááᣠáááááŤáá˝ áŤáľáááááᢠáľááá
ááłá á°á¨á᪠ááááŽá˝
git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL
á á á áľ... ááá á áá°áŤáᢠááá ááá á áľááá áĽáá˛áááá á¨ááŤá áľááŞááśá˝á á ááľá°áŤá¨á ááááľ á°ááłáľ á áłáááŠá˘ áĽá፠áŤá°á¨ááŠáľá á ááľáłááľá ᣠáá áá¨áśá˝ áŤááľ á°áá¨áľ áĽáá˛á áá áᢠáľááá á°á ááá . ááá áá áŤá áĽááá áááááŤáá˝ áŞá2á á¨á áá áá°áá¨áľ ááá áááł á¨áááᢠá¨áą áá á¨ááś á ááááľ ááťáá!
á¨á°áŁáľ á¨á˛áŚá áá áŚá˝ á ááᣠá¨áľááŞááľ áá
á áĽá áááľáŁ á¨áľáŤ áááááŤáá˝ áĽá
á á°á¨á°áᢠá°ááłáá á áŠá¤áľá˘ á áŠá á¨ááááľ áŽáááá°áŹ áá á áááááľáŁ áĽá á°áá áŠá ááľá á¨áá
á áá áŁáá áľáĽá áá°á¨áľ á áááááľá˘
á¨ááá°áá áááŽá á°áááá á115200 ááĽááľ áĽáŤáááá ááᣠáŤá áááľáá áĽá áśááľáá áľá
á°áľ ááĽáĽáᢠáĽá áĽááááá˘
VIM2á á UART á°áááá áá áľáá ááŤáá áááá áĽáá° á¨á áá á áá áŤá ááá áĽáŤááᢠááľáአá¨áłá¨ á áá
kvim2#
áľáááá á áľááŁáááĄ-
kvim2# run update
á áááŤáá áľ á áľá°ááá ááᣠáĽáá˝ááááĄ-
burn-tool -v aml -b VIM2 -i VIM2_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.img
፠áá áá á á¨áááŤááᣠá áŚááą áá ááááľ á áᢠááá˘áŤ/á¨ááá áá khadas:khadas.
á¨á፠á áá, á ááłááľ áĽáá á á¨ááááŞáŤ á ááĽáŽá˝. áá°á¨á᪠áľáŤ á¨áąáś á¨ááá ááá á á ááá (á á á°á áááą á¨á°á á á á áá°áá ááá áá ááš)á˘
sudo visudo
ááľááŠá áá° á áš á áľá°áŤáᏠá áľáááŁááá˘
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
á¨ááŤá ááá á ááľáŽ ááľáĽ áĽáá˛áá á¨á ááá á á¨áŁá˘ áĽáááŁáá, á áá áá፠á ááŞááá˝ ááľáĽ áááá.
sudo timedatectl set-timezone Europe/Moscow
ááá
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
á áľá¸á᪠áá áŤáááľ, áá á á°ááł á áá áá, Raspberry Pi á¨á°áťá áá. á áłááááľá˘
áá°á Huawei e3372h - 153
áá áá°á ááĽá ááá á¨áá á¨á°á ááá áá áᣠáĽá áĽáá˛áŤáá á¨ááŽáááą ááá ááᢠá á á ááá ááĽááá ááłáŞáŤáá˝ "áá°á" á¨ááá áľá á¨ááś á¨áľáŤáá áá ááá á áŤáłáá: áá áááá áĽáá¨áľ áá, áá á¨áááľáá ááŤá ážááŽá˝á áááŤá á˛á˛-áŽáá áááľáá°á á¨á°ááá° ááłáŞáŤ á áá. áĽá á¨á፠áá° á¨á ááłá¨ áá¨áĽ áŤááľ áááł ááá¨áŤá.
á áĽá-ááá ᣠá¨ááááľ á°á áá áĽá᳠ᣠá¨ááá á áá áśá˝ á áá ᣠáá áááľáá-áá°áá áŤááá á áá ᣠáĽá á¨á¤áľ * á ááłá¨ áá¨áĽ á áááá˝ á áá ᣠá dhcp á áŠá á¨á áá á áľáŤáť 192.168.8.100 ááá áá ᣠáĽá ááŁáŞ ááá˘áŤ á á 192.168.8.1 áá.
áĽá á áŁá á áľáááá áá! áá áá°á áá´á á AT áľáááá˝ ááĽáĽá á áá°á¨áá áľ á áá°á ááľ ááľáĽ áá ፠á áá˝áá. ááá ááá á áŁá ááá áááá, ááĽáŤááłááą áá°á ᨠPPP áááááśá˝á ááá አáĽá á¨á፠á¨áĽááą áá ááľáŠ. áá á áĽá áá᳠ᣠâáĽáŤáąâ (á áá áἠá áľááá ᣠá udev á áá˝ áá á¨áľ á¨ááááľ á áá) á¨á˘áľ á áááá˝ áááĽáŤá áĽá á¨á áá á áľáŤáťá á dhcp áááľáŁáá˘
á°á¨á᪠á፠áááŁáľá áááľáááľ "áá°á" á¨áááá áá áááłáľ áĽá á¨ááľááá áŤááľ áĽá ááľáá ááááľ ááłáĽ á áááŁáá, ááááŤáąá á áá á¨áą, á á˛áľ á¨ááľááá áŤááľá á¨ááľáá áá áĽáá° áááááľ áá.
á ááľ áá°á á˛áá, áá
ááá áአá˝áá á áááĽáá, ááá áá á¨á ááľ á áá, áááľá n-pieces á˛áá, á¨áá¨á°áá á¨á ááłá¨ áá¨áĽ ááľá áááłá.
áááľáᣠn á¨ááľááá áŤááśá˝áŁ á¨á°ááłáłá á áá á áľáŤáť ááᣠáĽáŤááłááąá á°ááłáłá ááŁáŞ ááá˘áŤ á á áŤááᢠáá á áĽáááą, áĽáŤááłááłá¸á á¨áŤáłá¸á áŚááŹá°á áá á¨á°ááá áá¸á.
ááááŞáŤ áá á ááľ ááá áááľá áá á¨áᥠá¨ifconfig ááá ip áľáááá á áá áá áááá á áááážá˝ áŤáĽá áĽá á ááá á ááąá á á¨á°áŤ áŤáĽáŠáľá ááááŠáľá˘ á áááŤá¨á áá á¨ááłáŞáŤá áá áááááľ á ááťááŠá áŤááá á áľá°áá áááľáá áááá á°á áĽáŠ áá áᢠáĽá ááá¨áŞáŤá á°á°ááá áĽá ááŁá áľáááᣠá áĽááἠááááááľ ááá áĽáľá á ááá á¨ááá˘
áľááá á¨áá°áášá á áá á áľáŤáťáá˝ á áĽá á¨ááá¨á áĽá á¨ááááá á ááĽáŽá˝á á áá áá áľáŤáá á¨áááłáľ ááááľá áááŤááá˘
á¨áá°áá˝ áá áŤáá áá á˝ááŽá˝ á áá
á áá áá: á ááá á˝ááŽá˝ ááľáĽ, áá°á, áĽá ááŠá¤áľá˘ áááá áĽáŠ á¨á°á¨áá á¨ááá á á
ááŚáľ áŤáľáááá. áá
áá á˝áá áááá á ááĽáł áá° ááááá á áá¸áĽ ááłááľá˘ ááá áŤáá áá áĽá á á ááá ááŽáááąá áŤá áá¸á-á¨ááłáŞáŤá áłáá ááľááłáľ ááá áááá á¨ááᨠá áá ááá áá°áá˝ á áá°ááá áĽá áááá á áá°áá ᣠáĽá áá
ááá áĽáá°á°á¨á°á° áĽá á áá áľáá° ááá ááá°á á ááťááŠáᢠáá ááááŞáŤ áááŽá˝ ááááŞáŤá˘
áá°á á áľááá áĽáá˛á°áŤ ᨠusb-modeswitch áĽá áá áŤááŠá.
sudo apt update
sudo apt install -y usb-modeswitch
á¨á፠á áá, á¨á°ááá á áá, áá°á á áľááá á°áááˇá áĽá á udev áááľ áľáááľ á¨á°ááᨠáááá. áá°áá á ááá á áááááľ áĽá á ááłá¨ áá¨áĄ ááłá¨áąá á áá¨ááἠá á¨áááŁááá˘
áá áááłáľ áŤááťááŠáľ á˝áááĄ- á¨áá
áá°á á¨ááá°áŤáá áŚááŹá°á áľá áĽáá´áľ ááááľ áĽá˝ááá? á¨áŚááŹá°áŠ áľá á áá°á áľá á áááá˝ 192.168.8.1 áá ááááᢠáá
á á áááľ áĽáŤááá˝ á áŠá ááἠá¨ááá á á°áááá áľá¨-áá˝ ááᣠáľááá
á ááá áášá áá¨ááá
áĽá áľáá áá°áá°á á áá°áŤáᢠáľááá
áľá
ᨠáá˝á áĽáá´áľ ááłá á áĽá á¨ááłá°ááľá áá¨áľ áááአáĽá á¨áá á¨ááá¨áŁ ááá áĽá¨á°áŤá áĽáá°áá á°á¨áłáᢠá áá¤áąá, áĽáą ááŤáá, áĽá áŚááŹá°áŠ ᨠSpeedtest API áĽáŤáąá á áá áá ááá á ááá¨.
áá°á á AT áľáááá˝ á áŠá ááłá¨áť á˘áá¨á á áŁá ááá áááá. áĽáąá áĽáá°áá ááááᣠááá áááááľ ááá áᣠá ááá ááá°áĽáŁ á¨á´ááŽá áŚááŹá°á ááááľáŁ ááá°. áá áᎠᣠá¨á°á°á á áá áĽá¨á°áŤá ááá˘
á á áŁáŤ áá áááŤ
á¨á°á°á á á¨ááá¤áľ ááá ፠UART á áááá˝ áĽá ááá áá á¨áᢠá¨áá á¨á°áťáá áááľá á ááá á¨áᣠáá á ááá áá ፠á¨áá˝á áĽá ááá áá áᢠá°ááŁáŠ áá á áááľááá˘
áĽáááąá ááááá á¨ááá¤áľ ááá ፠áá áľá°áŤ á¨ááááŞáŤáŹ áá á ááááá áĽáá°á á á
áŠáľ ááá ááá á¨á¨á
á áá á ááľ áłáľáŚáá áá áᢠáľááá
ááá á¨áá áááľááá˝á áĽáť áĽáá áááá.
á ááááŞáŤ ááá¤áľá ááááááľ uart_AO_B (UART_RX_AO_BᣠUART_TX_AO_B) á ááááá˘
khadas@Khadas:~$ sudo fdtput -t s /dtb.img /serial@c81004e0 status okay
á¨á፠á áá á¨ááś áĽáááá áľáŹáľ á á¨áááŁáá.
khadas@Khadas:~$ fdtget /dtb.img /serial@c81004e0 status
okay
áá áľáĽáá á á á¨áŤ áá áŤááá á˛áŞáľáŞ áŤáľá°áŤáááᣠáá á á áŁá ááš ááá˘
á¨áá ááá áľáŹáľ á áá á¨ááá¤áľ á´ááá áĽáá°áá áŤáľááą áĽá ááŤááľá˘
khadas@Khadas:~$ sudo reboot
á¨ááá¤áľ á´ááá á ááŤá ááᢠáááá ááá áĽááááá áĽá áá°á¨á᪠áá á áá˛áŤáá áááŹáááá˘
sudo apt install gpsd gpsd-clients -y
sudo killall gpsd
/* GPS daemon stop/disable */
sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket
á¨á ááĽáŽá˝ áááá á ááľá°áŤá¨á ááá˘
sudo vim /etc/default/gpsd
ááá¤áľ á¨áá°ááá áľá UART áĽá¨áŤáአááá˘
DEVICES="/dev/ttyS4"
áĽá á¨á፠áááá ááá á áĽáŤ áĽá áĽááááŤáá.
/* GPS daemon enable/start */
sudo systemctl enable gpsd.socket
sudo systemctl start gpsd.socket
á¨á፠á áá ááá¤áľá áĽááááá.
á¨ááá¤áľ á˝áŚ á áĽá ááľáĽ ááᣠᨠUART á áŤá á˝áŚáá˝ á áŁáśáź áľá ááłáŤáá˘
áłáá á áľááłáá áĽá á¨ááá¤áľá áŚááŹá˝á á¨ááá¤áľáá ááŽááŤá á á¨áááŁááá˘
á áá
á
á˝á áłá áá˝ áĽááł ááľáĽ áłá°áááśá˝á áá¨áľ á áá˝áá, ááá áá á¨ááá¤áľ á°ááŁá áá áááááľá áá¨áľ áá˝áá, áá
áááľ ááá ááá áĽáŠ áá áááľ áá.
á áááśá ááľáĽ á¨áá á´áá áá áááľáŤáľ áĽá á ááŤáŽá˝á áá¨ááŠáŁ ááá áá á¨áááśá 3 áá á áľááá á áá°áŤá áá á°á¨áááá˘
á áľááááá á¤á°-áá˝áááľ áĽááááá.
sudo -H pip3 install gps3
áĽá á¨áĽáŤáá áŽáľ áá¨á¸á.
from gps3.agps3threaded import AGPS3mechanism
...
def getPositionData(agps_thread):
counter = 0;
while True:
longitude = agps_thread.data_stream.lon
latitude = agps_thread.data_stream.lat
if latitude != 'n/a' and longitude != 'n/a':
return '{}' .format(longitude), '{}' .format(latitude)
counter = counter + 1
print ("Wait gps counter = %d" % counter)
if counter == 10:
ErrorMessage("ĐŃийка GPS ĐżŃиоПника!!!")
return "NA", "NA"
time.sleep(1.0)
...
f __name__ == '__main__':
...
#gps
agps_thread = AGPS3mechanism() # Instantiate AGPS3 Mechanisms
agps_thread.stream_data() # From localhost (), or other hosts, by example, (host='gps.ddns.net')
agps_thread.run_thread() # Throttle time to sleep after an empty lookup, default '()' 0.2 two tenths of a second
ááá ááŤáá˝á ááááľ áŤáľáááá áá á áá¨á°áá áĽáŞ áá¨áááááĄ
longitude, latitude = getPositionData(agps_thread)
áĽá á 1-10 á°á¨ááľ ááľáĽ á áľá°áŁáŁáŞáá á áááá ááá á ááááᢠá áᣠááá ááŤáá˝á áááááľ á áľá áá¨áŤáá˝ á áľáááŤááᢠáĽáŠ áŤáááᣠá áá áĽá á áŤá á áá°ááᣠáá áá°áŤáᢠáá áá áááľá¨á á¨áá°ááŠáľ ááá¤áľ á°áŤá ááá ፠ááá¨á áľááá˝á áĽá áááá áá¨áá áľááááá á ááᢠááἠáááá á á¨á á á, á áŠá ááá ááľáĽ á¨áá°áŠ á¨áá, ááŽááŤá á áá áŚáł áááá áá. áľááá , áá áá á¨ááá¨áŁ á ááŤá á°ááŁáŤá á áľáááŤáá.
á ááá á°á¨á, á°á¨á᪠áá áŤá, á¨ááá¤áľ á ááĽáł á UART á áŠá ááἠááá á, á á°áᨠáá ááľáĽ áá°áá°á áĽá á¨áĽáą áá ááľáŤáľ ááťá áá á. ááá áá ááá áá á ááá á¨á, áľááá á ááŤá á áľááŤáá áŽáľ. áĽá á á á ááááá˘
LED
LEDá áááááľ ááá áĽá á á°ááłáłá áá á áľá¸á᪠áá á. ááá á˝áá á á˛áľá°á ááľáĽ áŤáá á¨áá ááĽá á áŚááą áá áŤáá á¨áá ááĽá áá á ááááľá áĽá á°ááą á á፠áĽá á¨á°áá áľááá áá. á áľááá° áááá ááľáĽ áŤááá á¨áááľáá áá ááĽá áĽá á¨áá ááĽáŠá áááááá áľáááá ááľáŹáľ áŤáľáááááłá:
gpio readall
á áľáááą áĽá á áŚááą áá á¨áá á°áĽáłá¤áá˝ á°áá á¨áĽ ááłáŤá. á¨á፠á áá ááá á áŤáą á áľááá° áááá ááľáĽ ááĽáŤáľ áĽá˝áááᢠá áĽá áááł LED á°ááááˇá GPIOH_5.
ᨠGPIO áá áá° á¨áá¤áľ áááł áĽáááŤáá.
gpio -g mode 421 out
áᎠáĽá˝ááá.
gpio -g write 421 0
á ááąá áĽá˝ááá.
gpio -g write 421 1
"1" á¨áá á áá ááá ááá á ááˇá
#gpio subsistem
def gpio_init():
os.system("gpio -g mode 421 out")
os.system("gpio -g write 421 1")
def gpio_set(val):
os.system("gpio -g write 421 %d" % val)
def error_blink():
gpio_set(0)
time.sleep(0.1)
gpio_set(1)
time.sleep(0.1)
gpio_set(0)
time.sleep(0.1)
gpio_set(1)
time.sleep(0.1)
gpio_set(0)
time.sleep(1.0)
gpio_set(1)
def good_blink():
gpio_set(1)
á ááᣠáľá á°áśá˝ áŤáᣠáľá á°áľ_áĽááá() áĽá°áááá áĽá á¤áá˘á˛á á ááŤáá áááł áĽáá áľááá áááá˘
á¨áśááľáá á áááá˝
á¨ááĽááľ áá¨áŤ á¤áá á
ᨠSpeedtest.net á áááááľ á¨áŤáą á¨áá python-API áľááá á áŁá á°áľ áááᣠáĽááľá áááá¨áľ áá˝ááá˘
áĽáŠá ááá ááłáŠ á¨áá˝á á¨ááá áŽáśá˝ áááŤá¸á ááᢠá¨áá
á¤áá á áá áĽáá´áľ ááľáŤáľ áĽáá°ááťá (ááá ááłááá˝) á ááľáĽ áááá
ᨠPython á¤á°-áá˝áááľá á áá¨á°áá áľááá áĽááááá.
sudo -H pip3 install speedtest-cli
áááłá á¨ááĽááľ ááŤáŞá á áĄáĄááą á ááĽáł á¨áśááľáአááŤá áá˝ááᢠáá á°ááłáłá á¨áááśá áá°áá áŞáŤ ááᣠáĽáąá á ááĽáł á¨áŽááśá áááá áá˝ááá˘
sudo apt install speedtest-cli -y
áĽá á¨á áááá¨áĽ ááĽááľáá áááŠá˘
speedtest-cli
Retrieving speedtest.net configuration...
Testing from B***** (*.*.*.*)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by MTS (Moscow) [0.12 km]: 11.8 ms
Testing download speed................................................................................
Download: 7.10 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.86 Mbit/s
á áá¤áąá, áá áĽá áĽááłá°á¨ááŠáľ. á ááŽááá´ ááľáĽ á¨á áá áá á áá á°ááŁáŤá áááľá¨á áá°áá á¨ááĽááľ áá¨áŤ ááá áŽáśá˝ ááľáĽ áááŁáľ áá á¨áĽáᢠá áŁá á áľááá á¨áááľ á°ááŁáŤáľ ááľáĽ á ááą á¨á´ááŽá áŚááŹá°áá áľá áá° á ááŁáá ááá°áŤáľ áá.
import speedtest
from datetime import datetime
...
#УкаСŃваоП кОнкŃĐľŃĐ˝ŃĐš ŃĐľŃĐ˛ĐľŃ Đ´ĐťŃ ŃĐľŃŃĐ°
#6053) MaximaTelecom (Moscow, Russian Federation)
servers = ["6053"]
# If you want to use a single threaded test
threads = None
s = speedtest.Speedtest()
#пОНŃŃаоП Đ¸ĐźŃ ĐžĐżĐľŃĐ°ŃĐžŃĐ° ŃĐžŃОвОК ŃвŃСи
opos = '%(isp)s' % s.config['client']
s.get_servers(servers)
#пОНŃŃаоП ŃокŃŃОвŃŃ ŃŃŃĐžĐşŃ Ń ĐżĐ°ŃаПоŃŃаПи ŃĐľŃвоŃĐ°
testserver = '%(sponsor)s (%(name)s) [%(d)0.2f km]: %(latency)s ms' % s.results.server
#ŃĐľŃŃ ĐˇĐ°ĐłŃŃСки
s.download(threads=threads)
#ŃĐľŃŃ Đ˛ŃĐłŃŃСки
s.upload(threads=threads)
#пОНŃŃаоП ŃоСŃĐťŃŃĐ°ŃŃ
s.results.share()
#ĐĐžŃНо ŃогО ŃĐžŃПиŃŃĐľŃŃŃ ŃŃŃОка Đ´ĐťŃ ĐˇĐ°ĐżĐ¸Ńи в csv-ŃаКН.
#пОНŃŃаоП пОСиŃĐ¸Ń GPS
longitude, latitude = getPositionData(agps_thread)
#вŃĐľĐźŃ Đ¸ Đ´Đ°ŃĐ°
curdata = datetime.now().strftime('%d.%m.%Y')
curtime = datetime.now().strftime('%H:%M:%S')
delimiter = ';'
result_string = opos + delimiter + str(curpos) + delimiter +
curdata + delimiter + curtime + delimiter + longitude + ', ' + latitude + delimiter +
str(s.results.download/1000.0/1000.0) + delimiter + str(s.results.upload / 1000.0 / 1000.0) +
delimiter + str(s.results.ping) + delimiter + testserver + "n"
#ŃŃŃ Đ¸Đ´ĐľŃ ĐˇĐ°ĐżĐ¸ŃŃ Đ˛ ŃаКН НОгОв
áĽáá á°áá ááá ááá á áŁá ááá áá á áá°ááá, ááá áĽááłá á áŁá ááá á˘ááľáá. ááááŞáŤ áá á¨á ááááŽáš áááŞáŤ áĽáŠá áá áᢠ[]ááἠá áááá áá¨áĽ áááᢠá áá¤áąá, á¨áááá° á ááááŽá˝ áá áŠá, áĽá áĽááľá áĽáá°ááááąáľ, á°áááá ááĽááľ. áá á áŁá á¨á°ááłá°á áááľ ááᣠáá á áááá á áá ááᣠá¨ááᣠá¨áááááἠááá á°ááááᣠáĽááľá áá áááᢠááá áá áá˘ááá áŚááŹá°á á¨ááĽááľ áááŞáŤ ááŤáá˝ ááłá áĽáá á á á¨áá¨áŤ á áááá áĽá á áľáłá˛áľá˛ááľ á¨á°áľá°áŤá¨áá˘
á°áááá á áááá á ááááĄá áľ áá á¨ááĽááľ áááŞáŤ áá¤áľ.
á¨ááĽááľ áá¨áŤ áá¤áľ ᣠá¨á ááľ á áĽáĽá
á¨á°áá¨á á ááľ á áááá ááá˘
á áá°á áá
áľ, á áááąá áŚáłáá˝ "áá" á á, áĽá á¨ááłáĽ áá´áá˝á á áá áá ááľáááľ áŤáľááááá. ááá áá á áá á áááá á áá á áŤáá° áĽá áľááą á¨á áá á¨á°á¨áá ááá˘
á á á ááá áá
á áŁá áĽáŠ áááá áŚáł áá. áĽá á¨á áááá áááááŤáá á áá áá á¨á ááááŹá ááĽááľ áĽááŤááᢠáá á á´áááŤá ááááŽá˝ áá áĽááŁá ááá.
á°áĽáłá¤ áĽá áľá á°áśá˝ á ááá áá
á°áĽáłá¤ ááááᣠáĽá á°ááá á¨ááá á¨á°ááŤáŠ á ááŤáŽá˝á ááᏠáá áᣠáá á áá¨á¨áť á áá¨á°áá áá áá°ááŠá˘ á Yandex áá á¨áááĽááľ áłáĽá á°áááá¤áŤáá áĽá á¨á፠áá°áľáŠá˘
ááááŚáš á áá á°ááłá áá á¨áľ á°áá¨áá. áááááľ áŤáá ᨠ6 á°ááąáĄ á 00áĄ06áĄ12áĄ18áĄXNUMXáĄXNUMX áĽá XNUMXáĄXNUMXᢠáĽáá°áá¨á°áá ááłáá˘
from send_email import *
...
message_log = "ĐОги ŃĐľŃŃиŃĐžĐ˛Đ°Đ˝Đ¸Ń ĐżĐťĐ°ŃŃ â1"
EmailForSend = ["[email protected]", "[email protected]"]
files = ["/home/khadas/modems_speedtest/csv"]
...
def sendLogs():
global EmailForSend
curdata = datetime.now().strftime('%d.%m.%Y')
Ńurtime = datetime.now().strftime('%H:%M:%S')
try:
for addr_to in EmailForSend:
send_email(addr_to, message_log, "ĐОги Са " + curdata + " " + Ńurtime, files)
except:
print("Network problem for send mail")
return False
return True
áľá á°áśá˝ áĽáá˛á ááááŞáŤ áá á°áá¨ááᢠááááá ᣠáĽááą á áááአááľáĽ á°á¨áá˝á°áá ᣠáĽá áááááľ áŤá á¨áá á°ááłáá á áá áá áĽáá˛á á°ááłáᢠááá áá, áŤá Yandex á áá á¨ááአáááááśá˝ áĽááľ áá áá°áĽ áĽááłáá (áá á áá, ááá áĽá ááá°áľ áá) á˝ááŽá˝ á°áá áŠ. á á°áá áĽááłá áĽá á á áŁá áĽá áľá á°áśá˝ ááአáľááá˝á á ááľáł áááá áá°á áá á¨áĽáᢠáľááá á Yandex á áááááśá˝ á áŠá áľá áĽáá°áá á áááľ á˝áá áá¨áá á áŤáľ-á°á á˛áአáŤáľáłááą.
ááĽá¨ áááľ á áááá
á¨áááľ áááľáá áááááľ áĽá áĽáąá áá ááľ áĽá áĽáá°áá áááá áĽááľá˝á á¨áá á áááá áŤáľáááá áá áᢠá á á ááá, ááľáá áááá, áááá ááἠáá° á áááአááá áĽá á áľá á áááá˝ ááľáĽ áááá á¨ááŤáአááŤáá˝á ááááŁáľ áľááá áááá. áá ááá á á ááľ áá á áá°áá.
á VPS áĽá áááŤáá
á¨áááľáá áá á¨áááááľ áá´, vim2 á¨á°ááá˘áŚá˝ ssh áááááľá ááá§á áĽá áĽáá° ááááľ áĽáá°ááŤáłá¨á, á áŁá áĽáŠ á áá°áá. áááááą á¨á á, á áááአáá°áĄá áááá áĽá á áĽáą á áŠá áá°áá°á áá áááááľ á ááťáá. áľááá
á ááá á˘áá ááá˝ á¨áááá áá´áá˝á áááłá áŞáá¤á áá áá á¨á°áťá áá. áá°ááľ áá° áŞáá¤á ááá¨á ááá áá áᣠáá áá á ááá á¨ááá˘
áá¨áááá áľááááááŁááĽáśá˝á áľáááá°áĽáŁ root ssh áááááśá˝á áľááá°áá¨á áĽá áŞáá¤áľá áľááááá ááá˝ áĽáááłáá˝ á áááá á áááŁáᢠáááá ááá á áľááľáá áĽáá°ááŤáá ááá áĽááááá. ááááľ áááááľáŁ á á áááአáá á á˛áľ á°á áá áĽááĽáŤááá˘
adduser vimssh
á áĽá áááľáá áá á¨ssh áááááľ áááá˝á á áááŤááá˘
ssh-keygen
áĽá áá° á ááááŤá˝á áĽáááŁá¸áááá˘
ssh-copy-id [email protected]
á áĽá áááľáá ááᣠá áĽáŤááłááą áĄáľ áá á ááśáá˛á á¨á°ááá˘áŚá˝ ssh áááááľ áĽááĽáŤááá˘
[Unit]
Description=Auto Reverse SSH
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service]
User=khadas
ExecStart=/usr/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -CD 8080 -R 8083:localhost:22 [email protected]
RestartSec=5
Restart=always
[Install]
WantedBy=multi-user.target
ááááľ 8083 áľáŠá¨áľ ááľáĄ: á áááŁá ssh á áŠá ááááááľ á¨áľááá áá°áĽ áĽáá°áá áá áááľááᢠáá° á áá áŤáááľ áĽá ááááŠá˘
sudo systemctl enable autossh.service
sudo systemctl start autossh.service
áááłáá áĽááłá áá¨áľ áá˝áááĄ-
sudo systemctl status autossh.service
á ááᣠá VPS á ááááá˝á ááᣠá¨áŽáĽááĄ-
ssh -p 8083 khadas@localhost
á¨á፠áá° á¨áĽá á¨áá¨áŤ ááŤá áááľáá á°ááťááᢠáĽá á¨áááľáá áĽáá á¨áááἠááľáłááťáá˝á áĽá áááááá ááἠá ssh áá° á ááááᏠááá áĽá˝áááᣠáá á á áŁá ááš ááá˘
áááá á á ááľ áá á ááŁáá
á ááĽáŤáľ ááᣠáááľ áĽá áá¨á áĽáááá
Phew, á°á
á, ፠áá, áááá á áááá˝ ááá˝áŠá. áááá á ááľ áá áááŁáá ááá á áá ááᢠáŽáąá áá¨áľ áá˝ááá˘
á¨áŽáą áá á ááľ á áľááá ááĽáĽáĄ áá ááŽáááľ áĽáá°áá ááááá áá˝ááᣠááááŤáąá áĽáą áá ááľ á¨á°áá°á á°ááŁáᣠáá ááľ á¨á°áá°á á ááá´áá¸á á°ááá áˇáᢠááá áĽááłá á¨áááť áŽáľá áĽá¨á°á á á˘ááá, áĽáá á áŁá á áá á¨áááľá áááŽá˝ á áľááá á á˝áá ááľáĽ áĽáááťáá, á áá áá፠áá áá á áá ááá¨áłáľ á¨áááťá áá.
ááááŞáŤ áá ááá¤áľáᣠáááŚá á áľáááŞáŤáá áĽá á¨á°áᨠá¨áá áááááĽá á áľááłááá˘
#СапŃŃĐş пОŃОка пНаниŃОвŃика
pShedulerThread = threading.Thread(target=ShedulerThread, args=(1,))
pShedulerThread.start()
áááááĽá á ááŞá á áŁá ááá ááᥠáááááśá˝á áááá ááá áĽáá°á°á¨á° áĽá á áá áŤáá á¨áľá á°áľ áááł áá áĽáá°áá ááá¨áľ áááľááᢠá¨áľá á°áľ áŁáá˛áŤ áŤá, á¨ááŤá LED á áĽáá áľááá áĽáá°áááá.
#sheduler
def ShedulerThread(name):
global ready_to_send
while True:
d = datetime.today()
time_x = d.strftime('%H:%M')
if time_x in time_send_csv:
ready_to_send = True
if error_status:
error_blink()
else:
good_blink()
time.sleep(1)
á¨áá ááŽáááľ á áŁá á áľá¸ááŞá ááá ááĽáŤááłááą áá¨áŤ á¨á°ááá˘áŚá˝ ssh áááááľá áá á á ááᢠáĽáŤááłááą áá¨áŤ ááŁáŞ ááá˘áŤ áá áĽá Რá¤á á¤áľ á ááááá áĽáá°áá ááááá áŤáŤáľáłáᢠáááááá ááá áľáááŤáἠáŁáĄáŠ á áĽáá¨áľ áá˛áľ áá áĽáá°ááááἠáĽáá ᢠá¨áľááłá¤áá áĽáááá áŤáá á°á áĽááľ á¨á¨áá áŤáááá˘
áá áá áááľá¨á á¨á°áᨠá¨áááŞáŤ á áá á¨áĽ -set-mark 0x2 áĽá áľáŤááá áá° áá á á áŁáŤ áááá¨á áááŞáŤ áĽááĽáŤáá.
def InitRouteForSSH():
cmd_run("sudo iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 22 -j MARK --set-mark 0x2")
cmd_run("sudo ip rule add fwmark 0x2/0x2 lookup 102")
áĽáá´áľ áĽáá°áá°áŤ á¨á áá ááá
áá˝ááá˘
á¨á፠á áá ááá፠áá°ááá áá°áľ ááľáĽ áĽááŁáá, á áĽáŤááłááą áá á¨á°ááá áá°áá˝á áááá áĽááááá (á¨ááľááá áá á á áľáááľ áĽáá°á°ááá áááá ).
network_list = getNetworklist()
á¨á ááłá¨ áá¨áĽ á áááážá˝ áááá ááááľ á áŁá ááá ááá˘
def getNetworklist():
full_networklist = os.listdir('/sys/class/net/')
network_list = [x for x in full_networklist if "eth" in x and x != "eth0"]
return network_list
ááááŠá á¨á°áá áአá áá áľá áá°á á áááŤá áá á áĽáá áá áĽááłáłá¨á á¨á áá á áľáŤáťáá˝á áá° ááá áááááá˝ á ááá áťáá.
SetIpAllNetwork(network_list)
def SetIpAllNetwork(network_list):
for iface in network_list:
lastip = "%d" % (3 + network_list.index(iface))
cmd_run ("sudo ifconfig " + iface + " 192.168.8." + lastip +" up")
á¨ááŤá áĽá á ááá á ááľ loop ááľáĽ áĽáŤááłááą á áááá˝ á áŠá ááá. áĽá áĽáŤááłááąá á áááá˝ á áá áŤááá˘
for iface in network_list:
ConfigNetwork(iface)
def ConfigNetwork(iface):
#ŃĐąŃĐ°ŃŃваоП вŃĐľ наŃŃŃОКки
cmd_run("sudo ip route flush all")
#ĐаСнаŃаоП ŃĐťŃС пО ŃПОНŃаниŃ
cmd_run("sudo route add default gw 192.168.8.1 " + iface)
#СадаоП dns-ŃĐľŃĐ˛ĐľŃ (ŃŃĐž Đ˝ŃМнО Đ´ĐťŃ ŃайОŃŃ speedtest)
cmd_run ("sudo bash -c 'echo nameserver 8.8.8.8 > /etc/resolv.conf'")
á áááášá áá°ááŁáŤáááľ áĽááľáťáá, ááá á ááłá¨ áá¨áĽ á¨áá, áľá á°áśá˝á áĽááĽáŤáá. á ááłá¨ áá¨áĽ áŤá, á¨á፠áĽááá áááá°áľ ááá áá!
áĽáá ᨠssh áŤáá˛ááá áá°áá á áááá˝ á áá áŹááá (áŤáá°á°áŤ) ᣠááá áŤáá áľá á°áśá˝á áá° á áááአááá ᣠáááἠááľáłááťáá˝á ááá áĽá á áá¨á¨áťá á¨ááĽááľ áá¨áŤá á ááľ áĽá áááἠááľáłááťáášá áá° csv ááá á áľáááĽá˘
if not NetworkAvalible():
....
#ĐĐ´ĐľŃŃ ĐźŃ ŃĐžŃПиŃŃоП ĐžŃийки
....
else: #ĐŃŃŃ ŃĐľŃŃ, ŃŃĐ°, ŃайОŃаоП!
#ĐŃНи Ń Đ˝Đ°Ń ĐżŃОйНоПнŃĐš инŃĐľŃŃоКŃ, на кОŃĐžŃОП ssh, ŃĐž ПонŃоП огО
if (sshint == lastbanint or sshint =="free"):
print("********** Setup SSH ********************")
if sshint !="free":
Ńmd_run("sudo ip route del default via 192.168.8.1 dev " + sshint +" table 102")
SetupReverseSSH(iface)
sshint = iface
#ŃаС ŃĐľŃка ŃайОŃĐ°ĐľŃ, ŃĐž даваК ŃŃĐžŃнО вŃĐľ ĐžŃĐżŃавиП!!!
if ready_to_send:
print ("**** Ready to send!!!")
if sendLogs():
ready_to_send = False
if error_status:
SendErrors()
#и даНоо ŃĐľŃŃиŃŃоП ŃкОŃĐžŃŃŃ Đ¸ ŃĐžŃ
ŃĐ°Đ˝ŃоП НОги.
á¨á°ááá˘áŚá˝ sshá á¨áááááľ á°ááŁá ááĽááľ á°áᢠáá.
def SetupReverseSSH(iface):
cmd_run("sudo systemctl stop autossh.service")
cmd_run("sudo ip route add default via 192.168.8.1 dev " + iface +" table 102")
cmd_run("sudo systemctl start autossh.service")
áĽá á áĽááἠᣠáá áá áá áá áľ áá° á áá áá¨á áŤáľáááááłáᢠáá áá áááľá¨á á ááľ ááá áĽááĽáŤáá-
sudo vim /etc/systemd/system/modems_speedtest.service
áĽáá á ááľáĄ áĽá˝ááááĄ-
[Unit]
Description=Modem Speed Test
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service]
User=khadas
ExecStart=/usr/bin/python3.6 /home/khadas/modems_speedtest/networks.py
RestartSec=5
Restart=always
[Install]
WantedBy=multi-user.target
áŤáľ-ááŤáá á áĽááź áĽáááŤáá!
sudo systemctl enable modems_speedtest.service
sudo systemctl start modems_speedtest.service
á áá áľáááá á áá áá áá áĽá¨á°á¨ááá áĽááłá á¨áááἠááľáłááťáá˝á áá¨áľ áĽá˝ááá-
journalctl -u modems_speedtest.service --no-pager -f
áá¤áśá˝
á°á á ᣠá áá á áŁá á áľáááá ááá á áá¤áą áá áá? á áĽáľááľ áĽá á áá¨á áá°áľ ááľáĽ áááŤá á¨áťááłá¸á áĽááľ ááŤáá˝ áĽáá á áᢠááŤááš á¨á°áááĄáľ á áá¨á°áá áľááŞááľ gnuplot á áá áá ááá˘
#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "Rostelecom.ps"
#set terminal png size 1024, 768
#set output "Rostelecom.png"
set datafile separator ';'
set grid xtics ytics
set xdata time
set ylabel "Speed Mb/s"
set xlabel 'Time'
set timefmt '%d.%m.%Y;%H:%M:%S'
set title "Rostelecom Speed"
plot "Rostelecom.csv" using 3:6 with lines title "Download", '' using 3:7 with lines title "Upload"
set title "Rostelecom 2 Ping"
set ylabel "Ping ms"
plot "Rostelecom.csv" using 3:8 with lines title "Ping"
á¨ááááŞáŤá áááľ ááĽá áááľ áŤá°á¨ááŠáľ á¨á´á 2 áŚááŹá°á áá áá áá˘
áĽáá
á°áááá áááŞáŤ á áááá á°á áááŠ. á¨ááĽááľ áááŞáŤáá˝ áá áŤá, ááá áá á áŁá áááááŁá, ááá áá á ááłááľ á ááŤá áá á ááá ááłáŤá, áĽá áá
áá¨áá á ááŁáŤáľ ááááľ ááťáá, áááłá, á ááááłááľ á ááŤá.
á áá áááá˝ á¨á´ááŽá áŚááŹá°áŽá˝ á ááŤáł ááŤáá˝á á áŤáᢠá áá á ááŁá, á ááľ á¨áá¨áŤ á áááá ááľááá áá á, áĽá áá¤áśášá á áŁá á áľá°áłá˝ áá áŠ.
áĽáá°áááá¨áąáľ ᣠáááą ááá
áá¨á áááá áĽá áá°áľ á áŁá á°á áá ᣠáĽá á ááá
ááááľ áłáááłáľ áĽáŤ á ááááᢠááâŚ
á¨áĽáŤ áá¤áľ
á¨á á á á áá á áá áááłáá˝ áľáŤá á áľáááľ á°á áááᢠá¨áá ááŽáááľ á ááą áľáááśá˝, á áĽá á°á¨áŁá á áľá°áŤá¨áľ, áá°á áá á, áĽáąá á¨ááá˝ áá°áá˝ áá á á ááľ áá ááľáŤáľ á¨ááááá áĽá á á°áŤá ááĽá áĽáá°áá á áááľ áá´áá˝á á áŤ. ááĽááá ááááá˝áŁ áĽá á á áŁá áĽá á¨áá ááá˝ á¨áá°á áá´áá˝ á áᤠáĽááá áá á Mini PCI-e á áá¸áľ ááľáĽ áŤá áĽá á ááłáŞáŤá ááľáĽ á¨á°áŤá áĽá ááááá á áŁá ááá áá¸áᢠáá ፠áá˝á á¨á°áᨠáłáŞá ááᢠááŽáááą á áľá°áłá˝ áá á áĽáá á áá ááľáĽ ááłá°á á ááťá á áŁá á°á°áľáťááá˘
ááá: hab.com