Страница 1 из 1

В скрипте распарсить результат

Добавлено: 08 май 2023, 21:23
DyadyaGenya
Можно ли распарсить такие данные:

Код: Выделить всё

> system script run GSTATUS
  output: !GSTATUS: 
          Current Time:  350            Temperature: 32
          Reset Counter: 1              Mode:        ONLINE         
          System mode:   LTE            PS state:    Attached     
          LTE band:      B7                     LTE bw:      15 MHz  
          LTE Rx chan:   3025           LTE Tx chan: 21025
          LTE CA state:  NOT ASSIGNED
          EMM state:     Registered             Normal Service 
          RRC state:     RRC Connected  
          IMS reg state: No Srv                 
          PCC RxM RSSI:  -58            RSRP (dBm):  -92
          PCC RxD RSSI:  -58            RSRP (dBm):  -91
          Tx Power:      --             TAC:         7075 (28789)
          RSRQ (dB):     -12.6          Cell ID:     0000000 (00000000)
          SINR (dB):     14.0
          
          OK
Чтобы получить переменные:
Current Time
System mode
LTE band
LTE bw
LTE Rx chan
LTE Tx chan
LTE CA state
PCC RxM RSSI
PCC RxD RSSI
RSRP
RSRQ
SINR
Cell ID

Re: В скрипте распарсить результат

Добавлено: 08 май 2023, 22:18
DyadyaGenya
Например, я пробую сделать так:

Код: Выделить всё

/interface lte at-chat lte1 wait=yes input="AT!GSTATUS?"
:delay 3s
:local output [/interface lte at-chat lte1 once-output]
:local current_time ([/regexp "Current Time:\s+(\d+)" :pick $output 0] / 1000)
:put "Current Time: $current_time"
Но мне пишет ошибку:

Код: Выделить всё

expected end of command (line 3 column 44)

Re: В скрипте распарсить результат

Добавлено: 09 май 2023, 20:45
podarok66
Он вам вполне внятно сообщает, что в третьей строке начиная с 44 символа что-то не так. Там точно можно писать once-output?
Мне подсказки сообщают, что есть два варианта wait и input