Stringa di introduzione json/regular

introdurre

Nelle applicazioni tradizionali dei microcontrollori, la comunicazione seriale tra due microcontrollori definisce alcuni frame, tra cui l'intestazione del frame, il frame di dati, il frame di controllo e la coda del frame.L'immagine mostra il protocollo di controllo del volo MavLink.

Questo metodo è stabile ed efficiente.Anche gli svantaggi sono evidenti: lo sviluppo è leggermente più difficile, è necessario sviluppare il proprio protocollo e la codifica e la decodifica devono essere scritte manualmente.Se vuoi provare rapidamente a comunicare tra due microcontrollori.Consiglio di utilizzare la porta seriale per trasmettere stringhe json!

Vantaggi: Non è necessario conoscere cose di basso livello, come:

  • Non vengono considerati big endian e little endian
  • Non considera la conversione in byte dei dati
  • Supporta qualsiasi lunghezza di int, float
  • Semplice da capire e facile da sviluppare.

Svantaggi: Leggermente meno efficiente.La codifica e la decodifica json occuperanno la CPU.

In effetti, la trasmissione di JSON è diventata uno standard nella programmazione di rete. Ad esempio, nelle Restful API, il front-end e il back-end utilizzano JSON per ottenere informazioni.Semplicemente non è comune nel campo dei microcontrollori tradizionali. Da un lato, l’efficienza è leggermente inferiore e i sistemi embedded di solito hanno requisiti di controllo dei costi più elevati.Tuttavia, con la diminuzione del costo dei chip, molte applicazioni non hanno più requisiti molto elevati in termini di costi dei materiali e viene prestata sempre maggiore attenzione all'efficienza dello sviluppo.

Corda

string = "hello string!"

OpenMV può inviare stringhe direttamente attraverso la porta seriale.

from machine import UART

uart = UART(1, 9600)
string = "hello string!"
uart.write(string)

Operazioni sulle stringhe

http://www.runoob.com/python3/python3-string.html

Per esempio:


blobs=[12,23,11,22,33,44]

print("%d", blobs[3])

JSON JSON è un formato conciso ed efficiente per lo scambio di dati.Può essere

semplice come questo:

"[[12,0],[10,12],[22,10],[99,11]]"

Nota: utilizzo questa semplice stringa per inviare le coordinate x, y della patch di colore in OpenMV.

Può anche essere complesso in questo modo: ('''' rappresenta una stringa su più righe in Python)

'''
{
    "number":10,
    "color" :[255,0,0],
    "rate" :0.65
}
'''

Utilizzo questa struttura per inviare le informazioni sul colore raccolte da OpenMV al server in wifi.

Anche, può essere così:

'''
{
  "firstName": "John",
  "lastName": "Smith",
  "sex": "male",
  "age": 25,
  "address": 
  {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021"
  },
  "phoneNumber": 
  [
    {
      "type": "home",
      "number": "212 555-1234"
    },
   {            
      "type": "fax",
      "number": "646 555-4567"
    }
  ]
}
'''

Nota: la forma di json è molto simile a quella di Python, ma json è la forma di espressione oggetto di javascript, che è leggermente diversa dalla forma di espressione di python.

python genera json

OpenMV ha un modulo json. json.dumps(obj) e ujson.loads(str) possono facilmente generare e analizzare stringhe json.

import json

obj = [[12,0],[10,12],[22,10],[99,11]]
print(json.dumps(obj))

obj = {
    "number":10,
    "color" :[255,0,0],
    "rate" :0.65
}
print(json.dumps(obj))

Verrà prodotto:

'[[12, 0], [10, 12], [22, 10], [99, 11]]'

'{"color": [255, 0, 0], "number": 10, "rate": 0.65}'

Quindi invia la stringa tramite la porta seriale e quindi analizza la stringa json in un oggetto/array all'altra estremità.Quindi eseguire le operazioni logiche successive.

Moduli Json di altri microcontrollori

json è molto semplice e versatile.

Puoi utilizzare queste librerie per convertire stringhe JSON in oggetti.

Moduli JSON per altri linguaggi informatici

Fondamentalmente tutte le lingue supportano json (anche lisp, ^>^)...Quindi la comunicazione può essere effettuata facilmente.

Espressione regolare

Se si tratta di una semplice elaborazione di stringhe, puoi utilizzare alcune delle funzioni integrate di Python, ma per requisiti più complessi è necessario utilizzare espressioni regolari.

Ad esempio, l'elaborazione dell'URL.(Questo non è molto utilizzato in OpenMV. Per ora lo ometterò e lo introdurrò in dettaglio nella mia applicazione di rete MicroPython esp8266)

results matching ""

    No results matching ""