@@ -6,6 +6,11 @@ _Maintainer="Lean <coolsnowwolf@gmail.com>"
66source /usr/share/qmodem/generic.sh
77debug_subject=" quectel_ctrl"
88
9+ vendor_get_disabled_features (){
10+ json_add_string " " " NeighborCell"
11+ json_add_string " " " LockBand"
12+ }
13+
914function get_imei(){
1015 imei=$( at $at_port " AT+CGSN" | grep -o ' [0-9]\{15\}' )
1116 json_add_string imei $imei
@@ -63,6 +68,20 @@ function set_mode(){
6368 at $at_port " AT^SETMODE=${mode_num} "
6469}
6570
71+ function get_scs()
72+ {
73+ local scs
74+ case $1 in
75+ " 0" ) scs=" 15" ;;
76+ " 1" ) scs=" 30" ;;
77+ " 2" ) scs=" 60" ;;
78+ " 3" ) scs=" 120" ;;
79+ " 4" ) scs=" 240" ;;
80+ * ) scs=$( awk " BEGIN{ print 2^$1 * 15 }" ) ;;
81+ esac
82+ echo " $scs "
83+ }
84+
6685function get_network_prefer(){
6786 res=$( at $at_port " AT^SYSCFGEX?" | grep " \^SYSCFGEX:" | sed ' s/\^SYSCFGEX://g' )
6887 # (RAT index):
@@ -224,6 +243,206 @@ function base_info(){
224243 _get_temperature
225244}
226245
246+ cell_info ()
247+ {
248+
249+
250+ at_command=" AT^MONSC"
251+ response=$( at $at_port $at_command | grep " \^MONSC:" | sed ' s/\^MONSC: //' )
252+
253+ local rat=$( echo " $response " | awk -F' ,' ' {print $1}' )
254+
255+ case $rat in
256+ " NR" )
257+ network_mode=" NR5G-SA Mode"
258+ nr_mcc=$( echo " $response " | awk -F' ,' ' {print $2}' )
259+ nr_mnc=$( echo " $response " | awk -F' ,' ' {print $3}' )
260+ nr_arfcn=$( echo " $response " | awk -F' ,' ' {print $4}' )
261+ nr_scs_num=$( echo " $response " | awk -F' ,' ' {print $5}' )
262+ nr_scs=$( get_scs ${nr_scs_num} )
263+ nr_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $6}' )
264+ nr_cell_id=$( echo " ibase=16; $nr_cell_id_hex " | bc)
265+ nr_physical_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $7}' )
266+ nr_physical_cell_id=$( echo " ibase=16; $nr_physical_cell_id_hex " | bc)
267+ nr_tac=$( echo " $response " | awk -F' ,' ' {print $8}' )
268+ nr_rsrp=$( echo " $response " | awk -F' ,' ' {print $9}' )
269+ nr_rsrq=$( echo " $response " | awk -F' ,' ' {print $10}' )
270+ nr_sinr=$( echo " $response " | awk -F' ,' ' {print $11}' | sed ' s/\r//g' )
271+ ;;
272+ " LTE-NR" )
273+ network_mode=" EN-DC Mode"
274+ # LTE
275+ endc_lte_mcc=$( echo " $response " | awk -F' ,' ' {print $2}' )
276+ endc_lte_mnc=$( echo " $response " | awk -F' ,' ' {print $3}' )
277+ endc_lte_earfcn=$( echo " $response " | awk -F' ,' ' {print $4}' )
278+ endc_lte_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $5}' )
279+ endc_lte_cell_id=$( echo " ibase=16; $endc_lte_cell_id_hex " | bc)
280+ endc_lte_physical_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $6}' )
281+ endc_lte_physical_cell_id=$( echo " ibase=16; $endc_lte_physical_cell_id_hex " | bc)
282+ endc_lte_tac=$( echo " $response " | awk -F' ,' ' {print $7}' )
283+ endc_lte_rsrp=$( echo " $response " | awk -F' ,' ' {print $8}' )
284+ endc_lte_rsrq=$( echo " $response " | awk -F' ,' ' {print $9}' )
285+ endc_lte_rxlev=$( echo " $response " | awk -F' ,' ' {print $10}' | sed ' s/\r//g' )
286+ # NR5G-NSA
287+ endc_nr_mcc=$( echo " $response " | awk -F' ,' ' {print $2}' )
288+ endc_nr_mnc=$( echo " $response " | awk -F' ,' ' {print $3}' )
289+ endc_nr_arfcn=$( echo " $response " | awk -F' ,' ' {print $4}' )
290+ endc_nr_scs_num=$( echo " $response " | awk -F' ,' ' {print $5}' )
291+ nr_scs=$( get_scs ${nr_scs_num} )
292+ endc_nr_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $6}' )
293+ endc_nr_cell_id=$( echo " ibase=16; $endc_nr_cell_id_hex " | bc)
294+ endc_nr_physical_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $7}' )
295+ endc_nr_physical_cell_id=$( echo " ibase=16; $endc_nr_physical_cell_id_hex " | bc)
296+ endc_nr_tac=$( echo " $response " | awk -F' ,' ' {print $8}' )
297+ endc_nr_rsrp=$( echo " $response " | awk -F' ,' ' {print $9}' )
298+ endc_nr_rsrq=$( echo " $response " | awk -F' ,' ' {print $10}' )
299+ endc_nr_sinr=$( echo " $response " | awk -F' ,' ' {print $11}' | sed ' s/\r//g' )
300+ ;;
301+ " LTE" |" eMTC" |" NB-IoT" )
302+ network_mode=" LTE Mode"
303+ lte_mcc=$( echo " $response " | awk -F' ,' ' {print $2}' )
304+ lte_mnc=$( echo " $response " | awk -F' ,' ' {print $3}' )
305+ lte_earfcn=$( echo " $response " | awk -F' ,' ' {print $4}' )
306+ lte_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $5}' )
307+ lte_cell_id=$( echo " ibase=16; $lte_cell_id_hex " | bc)
308+ lte_physical_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $6}' )
309+ lte_physical_cell_id=$( echo " ibase=16; $lte_physical_cell_id_hex " | bc)
310+ lte_tac=$( echo " $response " | awk -F' ,' ' {print $7}' )
311+ lte_rsrp=$( echo " $response " | awk -F' ,' ' {print $8}' )
312+ lte_rsrq=$( echo " $response " | awk -F' ,' ' {print $9}' )
313+ lte_rxlev=$( echo " $response " | awk -F' ,' ' {print $10}' | sed ' s/\r//g' )
314+ ;;
315+ " WCDMA" |" TD-SCDMA" |" UMTS" )
316+ network_mode=" WCDMA Mode"
317+ wcdma_mcc=$( echo " $response " | awk -F' ,' ' {print $2}' )
318+ wcdma_mnc=$( echo " $response " | awk -F' ,' ' {print $3}' )
319+ wcdma_arfcn=$( echo " $response " | awk -F' ,' ' {print $4}' )
320+ wcdma_psc=$( echo " $response " | awk -F' ,' ' {print $5}' )
321+ wcdma_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $6}' )
322+ wcdma_cell_id=$( echo " ibase=16; $wcdma_cell_id_hex " | bc)
323+ wcdma_lac=$( echo " $response " | awk -F' ,' ' {print $7}' )
324+ wcdma_rscp=$( echo " $response " | awk -F' ,' ' {print $8}' )
325+ wcdma_rxlev=$( echo " $response " | awk -F' ,' ' {print $9}' )
326+ wcdma_ecn0=$( echo " $response " | awk -F' ,' ' {print $10}' )
327+ wcdma_drx=$( echo " $response " | awk -F' ,' ' {print $11}' )
328+ wcdma_ura=$( echo " $response " | awk -F' ,' ' {print $12}' | sed ' s/\r//g' )
329+ ;;
330+ " GSM" )
331+ network_mode=" GSM Mode"
332+ gsm_mcc=$( echo " $response " | awk -F' ,' ' {print $2}' )
333+ gsm_mnc=$( echo " $response " | awk -F' ,' ' {print $3}' )
334+ gsm_band_num=$( echo " $response " | awk -F' ,' ' {print $4}' )
335+ gsm_band=$( tdtech_get_band " GSM" ${gsm_band_num} )
336+ gsm_arfcn=$( echo " $response " | awk -F' ,' ' {print $5}' )
337+ gsm_bsic=$( echo " $response " | awk -F' ,' ' {print $6}' )
338+ gsm_cell_id_hex=$( echo " $response " | awk -F' ,' ' {print $7}' )
339+ gsm_cell_id=$( echo " ibase=16; $gsm_cell_id_hex " | bc)
340+ gsm_lac=$( echo " $response " | awk -F' ,' ' {print $8}' )
341+ gsm_rxlev=$( echo " $response " | awk -F' ,' ' {print $9}' )
342+ gsm_rx_quality=$( echo " $response " | awk -F' ,' ' {print $10}' )
343+ gsm_ta=$( echo " $response " | awk -F' ,' ' {print $11}' | sed ' s/\r//g' )
344+ ;;
345+ esac
346+
347+ class=" Cell Information"
348+ add_plain_info_entry " network_mode" " $network_mode " " Network Mode"
349+ case $network_mode in
350+ " NR5G-SA Mode" )
351+ add_plain_info_entry " MMC" " $nr_mcc " " Mobile Country Code"
352+ add_plain_info_entry " MNC" " $nr_mnc " " Mobile Network Code"
353+ add_plain_info_entry " Duplex Mode" " $nr_duplex_mode " " Duplex Mode"
354+ add_plain_info_entry " Cell ID" " $nr_cell_id " " Cell ID"
355+ add_plain_info_entry " Physical Cell ID" " $nr_physical_cell_id " " Physical Cell ID"
356+ add_plain_info_entry " TAC" " $nr_tac " " Tracking area code of cell served by neighbor Enb"
357+ add_plain_info_entry " ARFCN" " $nr_arfcn " " Absolute Radio-Frequency Channel Number"
358+ add_plain_info_entry " Band" " $nr_band " " Band"
359+ add_plain_info_entry " DL Bandwidth" " $nr_dl_bandwidth " " DL Bandwidth"
360+ add_bar_info_entry " RSRP" " $nr_rsrp " " Reference Signal Received Power" -187 -29 dBm
361+ add_bar_info_entry " RSRQ" " $nr_rsrq " " Reference Signal Received Quality" -43 20 dBm
362+ add_bar_info_entry " SINR" " $nr_sinr " " Signal to Interference plus Noise Ratio Bandwidth" -23 40 dB
363+ add_plain_info_entry " RxLev" " $nr_rxlev " " Received Signal Level"
364+ add_plain_info_entry " SCS" " $nr_scs " " SCS"
365+ add_plain_info_entry " Srxlev" " $nr_srxlev " " Serving Cell Receive Level"
366+ ;;
367+ " EN-DC Mode" )
368+ add_plain_info_entry " LTE" " LTE" " "
369+ add_plain_info_entry " MCC" " $endc_lte_mcc " " Mobile Country Code"
370+ add_plain_info_entry " MNC" " $endc_lte_mnc " " Mobile Network Code"
371+ add_plain_info_entry " Duplex Mode" " $endc_lte_duplex_mode " " Duplex Mode"
372+ add_plain_info_entry " Cell ID" " $endc_lte_cell_id " " Cell ID"
373+ add_plain_info_entry " Physical Cell ID" " $endc_lte_physical_cell_id " " Physical Cell ID"
374+ add_plain_info_entry " EARFCN" " $endc_lte_earfcn " " E-UTRA Absolute Radio Frequency Channel Number"
375+ add_plain_info_entry " Freq band indicator" " $endc_lte_freq_band_ind " " Freq band indicator"
376+ add_plain_info_entry " Band" " $endc_lte_band " " Band"
377+ add_plain_info_entry " UL Bandwidth" " $endc_lte_ul_bandwidth " " UL Bandwidth"
378+ add_plain_info_entry " DL Bandwidth" " $endc_lte_dl_bandwidth " " DL Bandwidth"
379+ add_plain_info_entry " TAC" " $endc_lte_tac " " Tracking area code of cell served by neighbor Enb"
380+ add_bar_info_entry " RSRP" " $endc_lte_rsrp " " Reference Signal Received Power" -140 -44 dBm
381+ add_bar_info_entry " RSRQ" " $endc_lte_rsrq " " Reference Signal Received Quality" -20 20 dBm
382+ add_bar_info_entry " RSSI" " $endc_lte_rssi " " Received Signal Strength Indicator" -140 -44 dBm
383+ add_bar_info_entry " SINR" " $endc_lte_sinr " " Signal to Interference plus Noise Ratio Bandwidth" -23 40 dB
384+ add_plain_info_entry " RxLev" " $endc_lte_rxlev " " Received Signal Level"
385+ add_plain_info_entry " RSSNR" " $endc_lte_rssnr " " Radio Signal Strength Noise Ratio"
386+ add_plain_info_entry " CQI" " $endc_lte_cql " " Channel Quality Indicator"
387+ add_plain_info_entry " TX Power" " $endc_lte_tx_power " " TX Power"
388+ add_plain_info_entry " Srxlev" " $endc_lte_srxlev " " Serving Cell Receive Level"
389+ add_plain_info_entry NR5G-NSA " NR5G-NSA" " "
390+ add_plain_info_entry " MCC" " $endc_nr_mcc " " Mobile Country Code"
391+ add_plain_info_entry " MNC" " $endc_nr_mnc " " Mobile Network Code"
392+ add_plain_info_entry " Physical Cell ID" " $endc_nr_physical_cell_id " " Physical Cell ID"
393+ add_plain_info_entry " ARFCN" " $endc_nr_arfcn " " Absolute Radio-Frequency Channel Number"
394+ add_plain_info_entry " Band" " $endc_nr_band " " Band"
395+ add_plain_info_entry " DL Bandwidth" " $endc_nr_dl_bandwidth " " DL Bandwidth"
396+ add_bar_info_entry " RSRP" " $endc_nr_rsrp " " Reference Signal Received Power" -187 -29 dBm
397+ add_bar_info_entry " RSRQ" " $endc_nr_rsrq " " Reference Signal Received Quality" -43 20 dBm
398+ add_bar_info_entry " SINR" " $endc_nr_sinr " " Signal to Interference plus Noise Ratio Bandwidth" -23 40 dB
399+ add_plain_info_entry " SCS" " $endc_nr_scs " " SCS"
400+ ;;
401+ " LTE Mode" )
402+ add_plain_info_entry " MCC" " $lte_mcc " " Mobile Country Code"
403+ add_plain_info_entry " MNC" " $lte_mnc " " Mobile Network Code"
404+ add_plain_info_entry " Duplex Mode" " $lte_duplex_mode " " Duplex Mode"
405+ add_plain_info_entry " Cell ID" " $lte_cell_id " " Cell ID"
406+ add_plain_info_entry " Physical Cell ID" " $lte_physical_cell_id " " Physical Cell ID"
407+ add_plain_info_entry " EARFCN" " $lte_earfcn " " E-UTRA Absolute Radio Frequency Channel Number"
408+ add_plain_info_entry " Freq band indicator" " $lte_freq_band_ind " " Freq band indicator"
409+ add_plain_info_entry " Band" " $lte_band " " Band"
410+ add_plain_info_entry " UL Bandwidth" " $lte_ul_bandwidth " " UL Bandwidth"
411+ add_plain_info_entry " DL Bandwidth" " $lte_dl_bandwidth " " DL Bandwidth"
412+ add_plain_info_entry " TAC" " $lte_tac " " Tracking area code of cell served by neighbor Enb"
413+ add_bar_info_entry " RSRQ" " $lte_rsrq " " Reference Signal Received Quality" -20 20 dBm
414+ add_bar_info_entry " RSSI" " $lte_rssi " " Received Signal Strength Indicator" -140 -44 dBm
415+ add_bar_info_entry " SINR" " $lte_sinr " " Signal to Interference plus Noise Ratio Bandwidth" -23 40 dB
416+ add_plain_info_entry " RxLev" " $lte_rxlev " " Received Signal Level"
417+ add_plain_info_entry " RSSNR" " $lte_rssnr " " Radio Signal Strength Noise Ratio"
418+ add_plain_info_entry " CQI" " $lte_cql " " Channel Quality Indicator"
419+ add_plain_info_entry " TX Power" " $lte_tx_power " " TX Power"
420+ add_plain_info_entry " Srxlev" " $lte_srxlev " " Serving Cell Receive Level"
421+
422+ ;;
423+ " WCDMA Mode" )
424+ add_plain_info_entry " MCC" " $wcdma_mcc " " Mobile Country Code"
425+ add_plain_info_entry " MNC" " $wcdma_mnc " " Mobile Network Code"
426+ add_plain_info_entry " LAC" " $wcdma_lac " " Location Area Code"
427+ add_plain_info_entry " Cell ID" " $wcdma_cell_id " " Cell ID"
428+ add_plain_info_entry " UARFCN" " $wcdma_uarfcn " " UTRA Absolute Radio Frequency Channel Number"
429+ add_plain_info_entry " PSC" " $wcdma_psc " " Primary Scrambling Code"
430+ add_plain_info_entry " RAC" " $wcdma_rac " " Routing Area Code"
431+ add_plain_info_entry " Band" " $wcdma_band " " Band"
432+ add_bar_info_entry " RSCP" " $wcdma_rscp " " Received Signal Code Power" -120 -25 dBm
433+ add_plain_info_entry " Ec/Io" " $wcdma_ecio " " Ec/Io"
434+ add_plain_info_entry " Ec/No" " $wcdma_ecno " " Ec/No"
435+ add_plain_info_entry " Physical Channel" " $wcdma_phych " " Physical Channel"
436+ add_plain_info_entry " Spreading Factor" " $wcdma_sf " " Spreading Factor"
437+ add_plain_info_entry " Slot" " $wcdma_slot " " Slot"
438+ add_plain_info_entry " Speech Code" " $wcdma_speech_code " " Speech Code"
439+ add_plain_info_entry " Compression Mode" " $wcdma_com_mod " " Compression Mode"
440+ add_plain_info_entry " RxLev" " $wcdma_rxlev " " RxLev"
441+
442+ ;;
443+ esac
444+ }
445+
227446function network_info() {
228447 class=" Network Information"
229448 at_command=" AT^SYSINFOEX"
0 commit comments