නිරෝධායනය අතරතුර, සෛලීය ක්රියාකරුවන් කිහිප දෙනෙකු සඳහා LTE මොඩමවල වේගය මැනීම සඳහා උපාංගයක් සංවර්ධනය කිරීමට සහභාගී වීමට මට ඉදිරිපත් විය.
LTE සම්බන්ධතාවයක් භාවිතයෙන් උපකරණ ස්ථාපනය කිරීමේදී, උදාහරණයක් ලෙස, වීඩියෝ විකාශන සඳහා, ඔහුට වඩාත්ම ප්රශස්ත වන්නේ කුමන සෛලීය ක්රියාකරුද යන්න තේරුම් ගැනීමට පාරිභෝගිකයාට විවිධ භූගෝලීය ස්ථානවල විවිධ ටෙලිකොම් ක්රියාකරුවන්ගේ වේගය ඇගයීමට අවශ්ය විය. ඒ අතරම, ගැටලුව මිල අධික උපකරණ නොමැතිව හැකි තරම් සරල හා ලාභදායී ලෙස විසඳා ගත යුතු විය.
කාර්යය සරලම හා වඩාත්ම දැනුමෙන් යුත් කාර්යය නොවන බව මම වහාම කියමි; මා මුහුණ දුන් ගැටළු සහ ඒවා විසඳූ ආකාරය මම ඔබට කියමි. ඉතින්, අපි යමු.
අදහස් දැක්වීම්
LTE සම්බන්ධතාවයක වේගය මැනීම ඉතා සංකීර්ණ කාරණයකි: ඔබ නිවැරදි උපකරණ සහ මිනුම් තාක්ෂණය තෝරා ගත යුතු අතර, සෛලීය ජාලයේ ස්ථලකය සහ ක්රියාකාරිත්වය පිළිබඳ හොඳ අවබෝධයක් ද තිබිය යුතුය. ඊට අමතරව, වේගයට සාධක කිහිපයක් බලපෑම් කළ හැකිය: සෛලයක ග්රාහකයින් සංඛ්යාව, කාලගුණික තත්ත්වයන්, සෛලයෙන් සෛලයට පවා ජාල ස්ථලකය හේතුවෙන් වේගය නාටකාකාර ලෙස වෙනස් විය හැකිය. සාමාන්යයෙන්, මෙය නොදන්නා විශාල සංඛ්යාවක් සමඟ ගැටළුවක් වන අතර, එය නිවැරදිව විසඳා ගත හැක්කේ ටෙලිකොම් ක්රියාකරුට පමණි.
මුලදී, පාරිභෝගිකයාට අවශ්ය වූයේ ක්රියාකරුවන්ගේ දුරකථන සමඟ කුරියර් ධාවනය කර, දුරකථනයෙන් කෙලින්ම මිනුම් ලබාගෙන පසුව වේග මැනීමේ ප්රතිඵල සටහන් පොතක ලිවීමටයි. lte ජාල වල වේගය මැනීම සඳහා මගේ විසඳුම, පරිපූර්ණ නොවූවත්, ගැටළුව විසඳයි.
වෙලාව මදිකම නිසා මම තීරණ ගත්තේ පහසුවටවත් ප්රායෝගිකත්වයටවත් නෙවෙයි, සංවර්ධනයේ වේගයට පක්ෂව. උදාහරණයක් ලෙස, සේවාදායකය සහ එක් එක් සේවාදායකයා පිහිටුවීමේ කාලය ඉතිරි කර ගැනීම සඳහා, වඩාත් ප්රායෝගික VPN වෙනුවට, දුරස්ථ ප්රවේශය සඳහා ප්රතිලෝම ssh භාවිතා කරන ලදී.
තාක්ෂණික කාර්යය
ලිපියේ දක්වා ඇති පරිදි
තාක්ෂණික කාර්යය තරමක් සරල විය, අවසාන පරිශීලකයාගේ අවබෝධය සඳහා මම එය ටිකක් පුළුල් කරමි. තාක්ෂණික විසඳුම් සහ උපකරණ තෝරාගැනීම පාරිභෝගිකයා විසින් නියම කරන ලදී. එබැවින්, සියලු අනුමත කිරීම් වලින් පසුව තාක්ෂණික පිරිවිතර:
තනි පුවරු පරිගණකයක් මත පදනම්ව vim2 H මොඩම හරහා lte සම්බන්ධතා සඳහා වේග පරීක්ෂකයක් සාදන්නuawei e3372h - 153 ටෙලිකොම් ක්රියාකරුවන් කිහිප දෙනෙකු (එක සිට n දක්වා). UART හරහා සම්බන්ධිත GPS ග්රාහකයකින් ඛණ්ඩාංක ලැබීම ද අවශ්ය වේ. සේවාව භාවිතයෙන් වේග මිනුම් කරන්න
www.speedtest.net සහ ඒවා මේසයක තබන්න:
csv ආකෘතියෙන් වගුව. ඉන්පසු සෑම පැය 6 කට වරක් මෙම ලකුණ විද්යුත් තැපෑලෙන් යවන්න. දෝෂ වලදී, GPIO වෙත සම්බන්ධ කර ඇති LED එක Blink කරන්න.
බොහෝ අනුමත කිරීම් වලින් පසුව මම තාක්ෂණික පිරිවිතරයන් නොමිලේ ආකාරයෙන් විස්තර කළෙමි. නමුත් කාර්යයේ අර්ථය දැනටමත් පෙනේ. හැමදේටම සතියක් දුන්නා. නමුත් ඇත්ත වශයෙන්ම එය සති තුනක් පැවතුනි. මෙය මා මෙය කළේ මගේ ප්රධාන රැකියාවෙන් පසුව සහ සති අන්තයේ පමණක් බව සැලකිල්ලට ගනිමින්.
මගේ හැකියාවන් බෙහෙවින් සීමා කළ වේග මිනුම් සේවාව සහ දෘඩාංග භාවිතය පිළිබඳව පාරිභෝගිකයා කල්තියා එකඟ වූ බව මෙහිදී මට නැවත වරක් අවධානය යොමු කිරීමට අවශ්යය. අයවැය ද සීමිත වූ බැවින් විශේෂ කිසිවක් මිලට ගත්තේ නැත. ඒ නිසා අපිට මේ නීතිරීතිවලට අනුව ක්රීඩා කරන්න සිද්ධ වුණා.
ගෘහ නිර්මාණ ශිල්පය සහ සංවර්ධනය
යෝජනා ක්රමය සරල හා පැහැදිලිය. ඒ නිසා විශේෂ අදහස් දැක්වීමකින් තොරව මම එය තබමි.
මෙම භාෂාව වර්ධනය කිරීමේ කිසිදු අත්දැකීමක් මට නොතිබුණද, සම්පූර්ණ ව්යාපෘතියම python හි ක්රියාත්මක කිරීමට මම තීරණය කළෙමි. මම එය තෝරා ගත්තේ සංවර්ධනය වේගවත් කළ හැකි සූදානම් කළ උදාහරණ සහ විසඳුම් රාශියක් තිබූ බැවිනි. එබැවින්, python හි වර්ධනය පිළිබඳ මගේ පළමු අත්දැකීමට බැණ නොගන්නා ලෙස මම සියලුම වෘත්තීය ක්රමලේඛකයන්ගෙන් ඉල්ලා සිටින අතර, මගේ කුසලතා වැඩි දියුණු කිරීම සඳහා නිර්මාණාත්මක විවේචන ඇසීමට මම සැමවිටම සතුටු වෙමි.
මෙම ක්රියාවලියේදී මම python හි ධාවන අනුවාද 2 සහ 3 ඇති බව සොයා ගත්තෙමි, එහි ප්රතිඵලයක් ලෙස මම තෙවනුව මත පදිංචි විය.
දෘඪාංග නෝඩ්
තනි තහඩු vim2
මගේ ප්රධාන යන්ත්රය ලෙස මට ලබා දුන්නේ තනි පුවරු පරිගණකයකි
ස්මාර්ට් නිවසක් සහ SMART-TV සඳහා විශිෂ්ට, බලවත් මාධ්ය ප්රොසෙසරයක්, නමුත් මෙම කාර්යය සඳහා අතිශයින්ම නුසුදුසු හෝ, අපි කියමු, දුර්වල ලෙස සුදුසුය. උදාහරණයක් ලෙස, එහි ප්රධාන මෙහෙයුම් පද්ධතිය ඇන්ඩ්රොයිඩ් වන අතර ලිනක්ස් ද්විතියික මෙහෙයුම් පද්ධතියක් වන අතර ඒ අනුව ලිනක්ස් යටතේ ඇති සියලුම නෝඩ් සහ ධාවකවල උසස් තත්ත්වයේ ක්රියාකාරිත්වය කිසිවෙකු සහතික නොකරයි. තවද මෙම වේදිකාවේ USB ධාවක සම්බන්ධ ගැටළු කිහිපයක් ඇති බව මම උපකල්පනය කරමි, එබැවින් මෙම පුවරුවේ බලාපොරොත්තු වූ පරිදි මොඩමයන් ක්රියා කළේ නැත. එහි ඉතා දුර්වල සහ විසිරුණු ලියකියවිලි ද ඇත, එබැවින් සෑම මෙහෙයුමක් සඳහාම නැව් තටාක හෑරීමට බොහෝ කාලයක් ගත විය. GPIO සමඟ සාමාන්ය වැඩ පවා ලේ ගොඩක් ගත්තා. උදාහරණයක් ලෙස, LED සැකසීමට මට පැය කිහිපයක් ගත විය. එහෙත්, වෛෂයික වීමට නම්, එය කුමන ආකාරයේ තනි පුවරුවක් ද යන්න මූලික වශයෙන් වැදගත් නොවීය, ප්රධාන දෙය නම් එය වැඩ කිරීම සහ USB පෝට් තිබීමයි.
මුලින්ම මට මේ බෝඩ් එකට ලිනක්ස් ඉන්ස්ටෝල් කරන්න ඕන. සෑම කෙනෙකුටම සහ මෙම තනි පුවරු ක්රමය සමඟ කටයුතු කරන අය සඳහා ලේඛනවල වල් සොරකම් නොකිරීමට, මම මෙම පරිච්ඡේදය ලියන්නෙමි.
Linux ස්ථාපනය කිරීමට විකල්ප දෙකක් තිබේ: බාහිර SD කාඩ්පතක් හෝ අභ්යන්තර MMC මත. එය කාඩ්පත සමඟ ක්රියා කරන්නේ කෙසේදැයි සොයා ගැනීමට මම සවසක් ගත කළෙමි, එබැවින් එය MMC මත ස්ථාපනය කිරීමට මම තීරණය කළෙමි, සැකයකින් තොරව බාහිර කාඩ්පතක් සමඟ වැඩ කිරීම වඩාත් පහසු වනු ඇත.
ස්ථිරාංග ගැන
- මෙවලම් පින් GND: <—> VIMs හි GPIO හි Pin17
- මෙවලම් පින් TXD: <—> VIMs හි GPIO හි Pin18 (Linux_Rx)
- මෙවලම් පින් RXD: <—> VIMs හි GPIO හි Pin19 (Linux_Tx)
- මෙවලම් Pin VCC: <—> VIMs හි GPIO හි Pin20
ඊට පස්සේ, මම ස්ථිරාංග බාගත කළා
මෙම ස්ථිරාංග උඩුගත කිරීම සඳහා, මට උපයෝගිතා අවශ්ය වේ. මේ ගැන වැඩි විස්තර
git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL
Aaand... කිසිම දෙයක් වැඩ කරන්නේ නැහැ. මම ස්ථාපන ස්ක්රිප්ට් සංස්කරණය කිරීමට පැය කිහිපයක් ගත කළෙමි, එවිට සියල්ල මට නිවැරදිව ස්ථාපනය වනු ඇත. මම එහි කළ දේ මට මතක නැත, නමුත් අශ්වයන් සමඟ සර්කස් ද එහි විය. ඒ නිසා පරිස්සම් වෙන්න. නමුත් මෙම උපයෝගිතා නොමැතිව vim2 තවදුරටත් වද දීමේ තේරුමක් නැත. ඔහු සමඟ කිසිසේත් පටලවා නොගැනීම හොඳය!
නිරයේ කව හතක්, ස්ක්රිප්ට් වින්යාස කිරීම සහ ස්ථාපනය කිරීමෙන් පසුව, මට වැඩ කරන උපයෝගිතා පැකේජයක් ලැබුණි. මම මගේ ලිනක්ස් පරිගණකයට USB හරහා පුවරුව සම්බන්ධ කළ අතර, ඉහත රූප සටහනට අනුව UART ද සම්බන්ධ කළෙමි.
මම දෘඪාංග සහ මෘදුකාංග දෝෂ පාලනයකින් තොරව 115200 වේගයක් සඳහා මගේ ප්රියතම මිනිකොම් පර්යන්තය සකසමි. හා අපි පටන් ගනිමු.
UART පර්යන්තය තුළ VIM2 පූරණය කරන විට, පැටවීම නැවැත්වීමට මම spacebar වැනි යතුරක් ඔබන්න. රේඛාව දිස් වූ පසු
kvim2#
මම විධානය ඇතුල් කරමි:
kvim2# run update
අපි පූරණය කරන ධාරකය මත, මම ක්රියාත්මක කරමි:
burn-tool -v aml -b VIM2 -i VIM2_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.img
එච්චරයි, පුතේ. මම බැලුවා, පුවරුවේ Linux තියෙනවා. ලොගින්/මුරපදය khadas:khadas.
ඊට පසු, කුඩා ආරම්භක සැකසුම් කිහිපයක්. වැඩිදුර වැඩ සඳහා, මම sudo සඳහා මුරපදය අක්රිය කරමි (ඔව්, ආරක්ෂිත නොවේ, නමුත් පහසු).
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 වඩා හොඳය. අවංකවම.
Modem Huawei e3372h – 153
මෙම මොඩමය මට සැලකිය යුතු රුධිර ප්රභවයක් වූ අතර ඇත්ත වශයෙන්ම එය සමස්ත ව්යාපෘතියේම බාධකයක් බවට පත්විය. පොදුවේ ගත් කල, මෙම උපාංග සඳහා "මොඩමය" යන නම කාර්යයේ සාරය කිසිසේත් පිළිබිඹු නොකරයි: මෙය ප්රබල සංයෝජනයකි, මෙම දෘඩාංග කැබැල්ලට ධාවක ස්ථාපනය කිරීම සඳහා CD-ROM ලෙස පෙනී සිටින සංයුක්ත උපාංගයක් ඇත, ඉන්පසු ජාල කාඩ්පත් මාදිලියට මාරු වේ.
වාස්තු විද්යාත්මකව, ලිනක්ස් පරිශීලකයෙකුගේ දෘෂ්ටි කෝණයෙන්, සියලු සැකසුම් වලින් පසුව, එය මේ ආකාරයෙන් පෙනේ: මොඩමය සම්බන්ධ කිරීමෙන් පසු, මට eth* ජාල අතුරු මුහුණතක් ඇත, එය dhcp හරහා 192.168.8.100 IP ලිපිනය සහ පෙරනිමි ද්වාරය ලබා ගනී. 192.168.8.1 වේ.
සහ වැදගත්ම මොහොත! AT විධාන මගින් පාලනය වන මොඩම් මාදිලියේ මෙම මොඩම් ආකෘතිය ක්රියා කළ නොහැක. සෑම දෙයක්ම වඩා සරල වනු ඇත, එක් එක් මෝඩමය සඳහා PPP සම්බන්ධතා නිර්මාණය කර ඒවා සමඟ ක්රියා කරන්න. නමුත් මගේ නඩුවේදී, "තමන්" (වඩාත් නිවැරදිව, udev නීතිවලට අනුව ලිනක්ස් කිමිදුම්කරුවෙකු), eth අතුරු මුහුණතක් නිර්මාණය කර dhcp හරහා එයට IP ලිපිනයක් ලබා දෙයි.
තවදුරටත් ව්යාකූලත්වය වළක්වා ගැනීම සඳහා, "මොඩමය" යන වචනය අමතක කර ජාල කාඩ්පත සහ ගේට්වේ කියමින් මම යෝජනා කරමි, මන්ද සාරයෙන් එය නව ජාල කාඩ්පතක් ගේට්වේ සමඟ සම්බන්ධ කිරීම වැනි ය.
එක් මොඩමයක් ඇති විට, මෙය විශේෂ ගැටළු ඇති නොකරයි, නමුත් එකකට වඩා, එනම් n-කෑලි ඇති විට, පහත ජාල පින්තූරය පැන නගී.
එනම්, n ජාල කාඩ්පත්, එකම IP ලිපිනය සහිත, එක් එක් පෙරනිමි ද්වාරය සහිතයි. නමුත් ඇත්ත වශයෙන්ම, ඒ සෑම එකක්ම තමන්ගේම ක්රියාකරුට සම්බන්ධ වේ.
මුලදී, මට සරල විසඳුමක් තිබුණි: ifconfig හෝ ip විධානය භාවිතා කර, සියලු අතුරුමුහුණත් ක්රියා විරහිත කර එකක් හැර එය පරීක්ෂා කරන්න. විසඳුම සෑම කෙනෙකුටම හොඳ විය, හැරුණු විට මාරු වන අවස්ථා වලදී මට උපාංගයට සම්බන්ධ වීමට නොහැකි විය. මාරුවීම නිතර හා වේගවත් බැවින්, ඇත්ත වශයෙන්ම මට සම්බන්ධ වීමට අවස්ථාවක් නොතිබුණි.
එබැවින්, මම මෝඩම වල IP ලිපින අතින් වෙනස් කිරීමේ මාර්ගය තෝරාගෙන පසුව මාර්ග සැකසුම් භාවිතා කර ගමනාගමනය ධාවනය කළෙමි.
මෙය මොඩමයන් සමඟ මගේ ගැටළු අවසන් නොවීය: බල ගැටළු වලදී, ඒවා කඩා වැටුණු අතර, USB හබ් වෙත හොඳ ස්ථාවර බල සැපයුමක් අවශ්ය විය. මම මෙම ගැටළුව විසඳුවේ බලය කෙලින්ම කේන්ද්රස්ථානයට තදින් පෑස්සීමෙන්. මා මුහුණ දුන් සහ සමස්ත ව්යාපෘතියම විනාශ කළ තවත් ගැටළුවක්: උපාංගය නැවත පණගැන්වීමෙන් හෝ සීතල ආරම්භයකින් පසුව, සියලුම මොඩමයන් අනාවරණය නොවූ අතර සෑම විටම නොවේ, මෙය සිදු වූයේ ඇයි සහ කුමන ඇල්ගොරිතමයෙන්ද යන්න මට තීරණය කළ නොහැක. නමුත් පළමු දේ පළමුව.
මෝඩමය නිවැරදිව වැඩ කිරීම සඳහා, මම usb-modeswitch පැකේජය ස්ථාපනය කළෙමි.
sudo apt update
sudo apt install -y usb-modeswitch
ඉන් පසුව, සම්බන්ධ වීමෙන් පසුව, මොඩමය නිවැරදිව හඳුනාගෙන udev උප පද්ධතිය මගින් වින්යාස කරනු ලැබේ. මම මෝඩමය සම්බන්ධ කිරීමෙන් සහ ජාලය දිස්වන බවට වග බලා ගැනීමෙන් පරීක්ෂා කරමි.
මට විසඳා ගැනීමට නොහැකි වූ තවත් ගැටළුවක්: මෙම මොඩමයෙන් අප සමඟ වැඩ කරන ක්රියාකරුගේ නම ලබා ගන්නේ කෙසේද? 192.168.8.1 හි මොඩමයේ වෙබ් අතුරු මුහුණතෙහි ක්රියාකරුගේ නම අඩංගු වේ. මෙය Ajax ඉල්ලීම් හරහා දත්ත ලබා ගන්නා ගතික වෙබ් පිටුවකි, එබැවින් පිටුව wget කිරීම සහ නම විග්රහ කිරීම ක්රියා නොකරනු ඇත. ඉතින් මම වෙබ් පිටුවක් ඩිවලොප් කරන්නේ කොහොමද ආදි දේවල් ගැන හොයන්න පටන් ගත්තට පස්සේ මම කරන්නේ මොකක් හරි විකාර වැඩක් බව තේරුනා. එහි ප්රතිඵලයක් වශයෙන්, ඔහු කෙළ ගසා ඇති අතර, ක්රියාකරු Speedtest API භාවිතා කරමින් ලබා ගැනීමට පටන් ගත්තේය.
මොඩමයට AT විධාන හරහා ප්රවේශය තිබේ නම් බොහෝ දේ පහසු වනු ඇත. එය නැවත වින්යාස කිරීමට, ppp සම්බන්ධතාවයක් නිර්මාණය කිරීමට, IP එකක් පැවරීමට, ටෙලිකොම් ක්රියාකරුවෙකු ලබා ගැනීමට යනාදිය හැකි වනු ඇත. නමුත් අහෝ, මම මට ලබා දී ඇති දේ සමඟ වැඩ කරමි.
ජීපීඑස්
මට ලබා දුන් GPS ග්රාහකයේ UART අතුරු මුහුණතක් සහ බලයක් තිබුණි. එය හොඳම විසඳුම නොවේ, නමුත් එය තවමත් වැඩ කළ හැකි සහ සරල විය. රිසීවරය පෙනුනේ මේ වගේ දෙයක්.
ඇත්තම කිව්වොත්, ජීපීඑස් ග්රාහකයක් සමඟ වැඩ කරන මගේ පළමු අවස්ථාව මෙයයි, නමුත් මා අපේක්ෂා කළ පරිදි, බොහෝ කලකට පෙර අප වෙනුවෙන් සියල්ල සිතුවේය. එබැවින් අපි සූදානම් කළ විසඳුම් පමණක් භාවිතා කරමු.
පළමුව, මම GPS සම්බන්ධ කිරීමට 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
මෙම විධානය පැහැදිලිවම පියාසර කරන විට devtree සංස්කරණය කරයි, එය ඉතා පහසු වේ.
මෙම මෙහෙයුම සාර්ථක වූ පසු, ජීපීඑස් ඩීමන් නැවත ආරම්භ කර ස්ථාපනය කරන්න.
khadas@Khadas:~$ sudo reboot
GPS ඩීමන් ස්ථාපනය කිරීම. මම සෑම දෙයක්ම ස්ථාපනය කර තවදුරටත් වින්යාස කිරීම සඳහා එය වහාම කපා.
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
මම GPS එල්ලෙන UART එකක් ස්ථාපනය කරනවා.
DEVICES="/dev/ttyS4"
ඊට පස්සේ අපි හැම දෙයක්ම සක්රිය කර ආරම්භ කරමු.
/* GPS daemon enable/start */
sudo systemctl enable gpsd.socket
sudo systemctl start gpsd.socket
ඊට පස්සේ, මම GPS සම්බන්ධ කරනවා.
GPS වයරය මගේ අතේ ඇත, UART දෝශ නිරාකරණ වයර් මගේ ඇඟිලි යට දිස්වේ.
මම gpsmon වැඩසටහන භාවිතයෙන් GPS ක්රියාකාරිත්වය නැවත ආරම්භ කර පරීක්ෂා කරමි.
ඔබට මෙම තිර පිටපතේ චන්ද්රිකා දැකිය නොහැක, නමුත් ඔබට GPS ග්රාහකය සමඟ සන්නිවේදනය දැකිය හැකි අතර මෙයින් අදහස් කරන්නේ සියල්ල හොඳින් ඇති බවයි.
python හි, මම මෙම ඩීමන් සමඟ වැඩ කිරීමට බොහෝ විකල්ප උත්සාහ කළ නමුත්, මම python 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 ක් ඇතුළත මට ඛණ්ඩාංකය ලැබෙනු ඇත හෝ නොලැබේ. ඔව්, මට ඛණ්ඩාංක ලබා ගැනීමට උත්සාහයන් දහයක් තිබුණා. ප්රශස්ත නොවේ, වක්ර සහ වංක, නමුත් එය ක්රියා කරයි. මම මෙය කිරීමට තීරණය කළේ GPS වලට දුර්වල පිළිගැනීමක් තිබිය හැකි අතර සෑම විටම දත්ත නොලැබෙන බැවිනි. ඔබ දත්ත ලැබීමට බලා සිටින්නේ නම්, ඔබ දුරස්ථ කාමරයක වැඩ කරන්නේ නම්, වැඩසටහන මෙම ස්ථානයේ කැටි වනු ඇත. එමනිසා, මම මෙම අශෝභන විකල්පය ක්රියාත්මක කළෙමි.
ප්රතිපත්තිමය වශයෙන්, වැඩි කාලයක් තිබුනේ නම්, UART හරහා කෙලින්ම GPS වෙතින් දත්ත ලබා ගැනීමටත්, එය වෙනම ත්රෙඩ් එකකින් විග්රහ කර එය සමඟ වැඩ කිරීමටත් හැකි වනු ඇත. නමුත් කිසිසේත්ම වේලාවක් නොතිබුණි, එබැවින් කුරිරු කැත කේතය. ඔව්, මට ලැජ්ජාවක් නැහැ.
ආලෝක විමෝචක දියෝඩ
LED සම්බන්ධ කිරීම එකම අවස්ථාවේදීම සරල හා දුෂ්කර විය. ප්රධාන දුෂ්කරතාවය වන්නේ පද්ධතියේ ඇති පින් අංකය පුවරුවේ ඇති පින් අංකයට අනුරූප නොවීම සහ ලියකියවිලි වම් අතෙන් ලියා තිබීමයි. OS හි දෘඩාංග පින් අංකය සහ පින් අංකය සංසන්දනය කිරීමට, ඔබ විධානය ක්රියාත්මක කළ යුතුය:
gpio readall
පද්ධතියේ සහ පුවරුවේ පින් ලිපි හුවමාරු වගුවක් දර්ශනය වේ. ඊට පස්සේ මට දැනටමත් OS එකේම පින් එක ක්රියාත්මක කරන්න පුළුවන්. මගේ නඩුවේ LED සම්බන්ධ කර ඇත GPIOH_5.
මම GPIO පින් එක output mode එකට මාරු කරනවා.
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)
දැන්, දෝෂ වලදී, මම error_blink() ලෙස හඳුන්වන අතර LED එක ලස්සනට බැබළේ.
මෘදුකාංග නෝඩ්
Speedtest API
speedtest.net සේවාවට තමන්ගේම python-API තිබීම සතුටට කරුණකි, ඔබට බැලිය හැක
හොඳ දේ තමයි බලන්න පුළුවන් source codes තියෙන එක. මෙම API සමඟ වැඩ කරන්නේ කෙසේද (සරල උදාහරණ) සොයාගත හැකිය
මම පහත විධානය සමඟ python පුස්තකාලය ස්ථාපනය කරමි.
sudo -H pip3 install speedtest-cli
උදාහරණයක් ලෙස, ඔබට මෘදුකාංගයෙන් කෙලින්ම උබුන්ටු හි වේග පරීක්ෂකයක් ස්ථාපනය කළ හැකිය. මෙය එකම python යෙදුම වන අතර, එය කොන්සෝලයෙන් කෙලින්ම දියත් කළ හැක.
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"
#тут идет запись в файл логов
මෙහි ද සෑම දෙයක්ම එතරම් සරල නොවන බව පෙනේ, නමුත් එය වඩා සරල බව පෙනේ. මුලදී, සේවාදායක පරාමිතිය සමාන විය [], ඔවුන් පවසන්නේ, හොඳම සේවාදායකය තෝරන්න. ප්රතිඵලයක් වශයෙන්, මම අහඹු සේවාදායකයන් ඇති අතර, ඔබ අනුමාන කළ හැකි පරිදි, විචල්ය වේගය. මෙය තරමක් සංකීර්ණ මාතෘකාවකි, ස්ථාවර සේවාදායකයක් භාවිතා කිරීම, එසේ නම්, ස්ථිතික හෝ ගතික, පර්යේෂණ අවශ්ය වේ. නමුත් මෙහි ගතිකව පරීක්ෂණ සේවාදායකයක් සහ ස්ථිතිකව ස්ථාවර එකක් තෝරාගැනීමේදී Beeline ක්රියාකරු සඳහා වේග මිනුම් ප්රස්තාර සඳහා උදාහරණයක් වේ.
ගතික සේවාදායකයක් තෝරාගැනීමේදී වේගය මැනීමේ ප්රතිඵලය.
දැඩි ලෙස තෝරාගත් එක් සේවාදායකයක් සහිත වේග පරීක්ෂාවේ ප්රතිඵලය.
පරීක්ෂණය අතරතුර, ස්ථාන දෙකෙහිම "ලොම්" ඇති අතර, එය ගණිතමය ක්රම භාවිතයෙන් ඉවත් කිරීම අවශ්ය වේ. නමුත් ස්ථාවර සේවාදායකයක් සමඟ එය තරමක් අඩු වන අතර විස්තාරය වඩා ස්ථායී වේ.
පොදුවේ ගත් කල, මෙය විශාල පර්යේෂණ ස්ථානයකි. මම iperf උපයෝගීතාව භාවිතයෙන් මගේ සේවාදායකයේ වේගය මනිමි. නමුත් අපි තාක්ෂණික පිරිවිතරයන්ට ඇලී සිටින්නෙමු.
තැපැල් යැවීම සහ දෝෂ
තැපැල් යැවීමට, මම විවිධ විකල්ප දුසිම් කිහිපයක් උත්සාහ කළ නමුත් අවසානයේ මම පහත සඳහන් දේ මත පදිංචි විය. මම Yandex හි තැපැල් පෙට්ටියක් ලියාපදිංචි කර පසුව ගත්තා
උපලේඛකයාට අනුව ලඝු-සටහන් යවන ලදී, සම්බන්ධතාවයක් තිබේ නම්, සෑම පැය 6 කට වරක්: 00 ට, 06 am, 12 ට සහ ප.ව. 18 ට. එය පහත පරිදි යවා ඇත.
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 සම්බන්ධතාවයක් තෝරා ගත් අතර, ප්රායෝගිකව පෙන්වා දී ඇති පරිදි, එය හොඳම නොවේ. සම්බන්ධතාවය නැති වී ඇත්නම්, සේවාදායකය වරාය රඳවා තබා ඇති අතර එය හරහා යම් කාලයක් සම්බන්ධ වීමට නොහැකි වනු ඇත. එබැවින්, වෙනත් සන්නිවේදන ක්රම භාවිතා කිරීම තවමත් වඩා හොඳය, උදාහරණයක් ලෙස VPN. අනාගතයේදී මට VPN වෙත මාරු වීමට අවශ්ය විය, නමුත් කාලය නොතිබුණි.
මම ෆයර්වෝලයක් පිහිටුවීම, අයිතිවාසිකම් සීමා කිරීම, root ssh සම්බන්ධතා අක්රිය කිරීම සහ VPS එකක් පිහිටුවීමේ වෙනත් සත්යයන් පිළිබඳ විස්තර වෙත නොයමි. ඔබ දැනටමත් සියල්ල දන්නා බව විශ්වාස කිරීමට මම කැමතියි. දුරස්ථ සම්බන්ධතාවයක් සඳහා, මම සේවාදායකයේ නව පරිශීලකයෙකු නිර්මාණය කරමි.
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, හොඳයි, ඒක තමයි, මම සියලු නෝඩ් විස්තර කළා. දැන් ඒ සියල්ල එකට එකතු කිරීමට කාලයයි. ඔබට කේතය දැකිය හැකිය
කේතය සමඟ වැදගත් කරුණක්: මෙම ව්යාපෘතිය මේ ආකාරයට ආරම්භ නොවිය හැක, මන්ද එය නිශ්චිත ගෘහ නිර්මාණ ශිල්පයක නිශ්චිත කාර්යයක් සඳහා සකස් කර ඇත. මම මූලාශ්ර කේතය ලබා දුන්නද, මම තවමත් මෙහි ඇති වටිනාම දේ, පෙළෙහිම පැහැදිලි කරමි, එසේ නොමැතිනම් එය සම්පූර්ණයෙන්ම තේරුම්ගත නොහැක.
මුලදී, මම gps, gpio ආරම්භ කර වෙනම කාලසටහන් නූලක් දියත් කරමි.
#запуск потока планировщика
pShedulerThread = threading.Thread(target=ShedulerThread, args=(1,))
pShedulerThread.start()
උපලේඛනය ඉතා සරල ය: පණිවිඩ යැවීමට කාලය පැමිණ තිබේද යන්න සහ වත්මන් දෝෂ තත්ත්වය කුමක්දැයි බැලීමට එය බලයි. දෝෂයක් ධජයක් තිබේ නම්, අපි LED එක blink කරමු.
#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 සම්බන්ධතාවය පවත්වා ගැනීමයි. සෑම පරීක්ෂණයකටම පෙරනිමි ද්වාරය සහ DNS සේවාදායකය නැවත වින්යාස කිරීම ඇතුළත් වේ. කවුරුවත් කොහොමත් කියවන්නේ නැති නිසා, කෝච්චිය යන්නේ ලී රේල් පීලි මත නොවන බව දැනගන්න. පාස්කු බිත්තරය සොයාගත් තැනැත්තාට රසකැවිලි කිහිපයක් ලැබේ.
මෙය සිදු කිරීම සඳහා, මම වෙනම මාර්ගගත වගුවක් -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
ලැයිස්තුව ලැබීමෙන් පසු, මම මෝඩමය පිළිබඳ පරිච්ඡේදයේ පින්තූරයේ පෙන්වා ඇති පරිදි, සියලුම අතුරුමුහුණත් සඳහා IP ලිපින සකසා ඇත.
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")
එවිට මම සරලව එක් එක් අතුරු මුහුණත හරහා ලූපයක් හරහා යන්නෙමි. තවද මම එක් එක් අතුරු මුහුණත වින්යාස කරමි.
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'")
මම ක්රියාකාරීත්වය සඳහා අතුරු මුහුණත පරීක්ෂා කරමි, ජාලයක් නොමැති නම්, මම දෝෂ ඇති කරමි. ජාලයක් තිබේ නම්, එය ක්රියා කිරීමට කාලයයි!
ඔන්න මම මේ interface එකට ssh routing configure කරනවා (එය කරලා නැත්නම්), වෙලාව ආවොත් server එකට errors යවලා, logs යවලා අන්තිමට speedtest එකක් run කරලා logs ටික csv file එකකට save කරනවා.
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
ප්රතිඵල
හොඳයි, දැන් වඩාත්ම වැදගත් දෙය නම්, එහි ප්රති result ලය වූයේ කුමක්ද? සංවර්ධන සහ නිදොස් කිරීමේ ක්රියාවලියේදී ග්රහණය කර ගැනීමට මා සමත් වූ ප්රස්තාර කිහිපයක් මෙන්න. පහත ස්ක්රිප්ටය සමඟ 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"
පළමු අත්දැකීම වූයේ මම දින කිහිපයක් පැවැත්වූ Tele2 ක්රියාකරු සමඟ ය.
මෙහිදී මම ගතික මිනුම් සේවාදායකයක් භාවිතා කළෙමි. වේග මිනුම් ක්රියා කරයි, නමුත් බොහෝ සෙයින් උච්චාවචනය වේ, නමුත් සමහර සාමාන්ය අගය තවමත් දෘශ්යමාන වන අතර, දත්ත පෙරීමෙන් මෙය ලබා ගත හැකිය, උදාහරණයක් ලෙස, චලනය වන සාමාන්යයක් සමඟ.
පසුව මම වෙනත් ටෙලිකොම් ක්රියාකරුවන් සඳහා ප්රස්ථාර ගණනාවක් ගොඩනගා ගත්තෙමි. මෙම අවස්ථාවෙහිදී, දැනටමත් එක් පරීක්ෂණ සේවාදායකයක් තිබී ඇති අතර, ප්රතිඵල ද ඉතා රසවත් විය.
ඔබට පෙනෙන පරිදි, මෙම දත්ත පර්යේෂණ සහ සැකසීම සඳහා මාතෘකාව ඉතා පුළුල් වන අතර, පැහැදිලිවම සති කිහිපයක් වැඩ සඳහා නොපවතියි. එහෙත්…
වැඩ ප්රතිඵල
මගේ පාලනයෙන් ඔබ්බට ගිය තත්වයන් නිසා වැඩ කටයුතු හදිසියේම අවසන් විය. මෙම ව්යාපෘතියේ එක් දුර්වලතාවයක් නම්, මගේ ආත්මීය මතය අනුව, අනෙක් මෝඩමයන් සමඟ එකවර වැඩ කිරීමට සැබවින්ම අවශ්ය නොවූ මොඩමය වූ අතර එය පටවන සෑම අවස්ථාවකම එවැනි උපක්රම සිදු කළේය. මෙම අරමුණු සඳහා, වෙනත් මොඩම් මාදිලි විශාල සංඛ්යාවක් ඇත; සාමාන්යයෙන් ඒවා දැනටමත් Mini PCI-e ආකෘතියේ ඇති අතර උපාංගය තුළ ස්ථාපනය කර ඇති අතර ඒවා වින්යාස කිරීමට වඩා පහසුය. නමුත් එය සම්පූර්ණයෙන්ම වෙනස් කතාවකි. ව්යාපෘතිය සිත්ගන්නාසුළු වූ අතර එයට සහභාගී වීමට හැකිවීම ගැන මම ඉතා සතුටු වෙමි.
මූලාශ්රය: www.habr.com