python - string unpack



  • Hi,

    wie kann ich in python folgenden befehl umsetzen ohne import numpy as np zu verwenden!?

    ADC_wave = np.array(unpack('%sB' % len(ADC_wave_inp),ADC_wave_inp))
    

    ADC_wave_inp sieht so aus:

    \xba\xfb\xd0\xfb\xec\xfb\x08\xfc&\xfc<\xfcP\xfc\\\xfcd\xfcd\xfc`\xfcX\xf
    cN\xfcD\xfc:\xfc0\xfc0\xfc.\xfc4\xfc8\xfcB\xfcP\xfc\\\xfcj\xfct\xfc|\xfcz\xfc|\x
    fcr\xfcf\xfcV\xfcB\xfc0\xfc\x18\xfc\x08\xfc\xf4\xfb\xee\xfb\xec\xfb\xee\xfb\xf6\
    xfb\x02\xfc\x14\xfc$\xfc<\xfcL\xfc`\xfcl\xfct\xfcv\xfcr\xfch\xfcX\xfcD\xfc(\xfc\
    x12\xfc\xf8\xfb\xdc\xfb\xc2\xfb\xaa\xfb\x92\xfb\x84\xfbt\xfbn\xfbl\xfbn\xfbv\xfb
    \x8a\xfb\xa0\xfb\xc6\xfb\xf0\xfb \xfcR\xfc\x8e\xfc\xca\xfc\x00\xfd6\xfdb\xfd|\xf
    d\x8c\xfd\x8c\xfd|\xfdZ\xfd2\xfd\xf8\xfc\xb6\xfcz\xfc@\xfc\x12\xfc\xf6\xfb\xea\x
    fb\xf4\xfb\x18\xfcN\xfc\x9a\xfc\xf4\xfcN\xfd\xac
    


  • noch weiter angaben zum string:
    - Setup transfer of LSB first
    - data in WORD format, the 16- bit signed
    integer value for each data point is sent in two consecutive 8- bit bytes
    over the remote interface.
    - WORD- formatted data is transferred as signed 16- bit integers in two bytes.
    If :WAVeform:BYTeorder is set to MSBFirst, the most significant byte of
    each word is sent first. If the BYTeorder is LSBFirst, the least significant
    byte of each word is sent first

    wenn ich das nun richtig verstanden habe muss ich dafuer folgendes unpack nehmen?

    unpack('sI', str)
    


  • Hi,

    hatte bei der docu fuer unpack uebersehen das ich folgendes verwenden muss:

    unpack('H', str)
    

    wie kann ich das unpack fuer eine variable string laenge bauen?
    der aufruf zuvor verlangt ja: unpack requires a string argument of length 2

    wie gesagt der anfang des empfangenen string's sieht so aus:

    \xfc\x12\xfb\xf4\xfb\xde\xfb\xd4\xfb\xd0\xfb\xd4\xfb\xde\xfb\xe4\xfb\xee\xfb\xf
    6\xfb\xf6\xfb\xfe\xfc\x00\xfb\xfe\xfb\xfa\xfb\xf4\xfb\xf0\xfb\xea\xfb\xe2\xfb\xd
    c\xfb\xd0\xfb\xc6\xfb\xbc\xfb\xb4\xfb\xb0\xfb\xae\xfb\xb8\xfb\xbc\xfb\xd2\xfb\xe
    e\xfc\x14\xfc>\xfcn\xfc\xa0\xfc\xd4\xfd\x04\xfd&\xfd:\xfdD\xfd:\xfd \xfc\xfe\xfc
    \xc8\xfc\x8c\xfcR\xfc\x18\xfb\xe4\xfb\xc0\xfb\xa8\xfb\xa4\xfb\xb4\xfb\xd0\xfb\xf
    e\xfc6\xfcp\xfc\xa6\xfc\xd8\xfc\xfa\xfd\x10\xfd\x14\xfd\x08\xfc\xec\xfc\xc8\xfc\
    x96\xfch\xfc<\xfc\x1c\xfc\x0c\xfc\x06\xfc\x18\xfc<\xfcn\xfc\xaa\xfc\xf2\xfd8\xfd
    ~\xfd\xbc\xfd\xec\xfe\x10\xfe$\xfe$\xfe\x16\xfd\xf8\xfd\xd4\xfd\xa2\xfdn\xfd>\xf
    d\x0c\xfc\xe6\xfc\xc2\xfc\xaa\xfc\x9e\xfc\xa0\xfc\xa8\xfc\xbe\xfc\xde\xfd\x00\xf
    d&\xfdV\xfd\x80\xfd\xa6\xfd\xcc\xfd\xe4\xfd\xf6\xfd\xfa\xfd\xf4\xfd\xda\xfd\xb8\
    xfd\x90\xfd^\xfd,\xfc\xf2\xfc\xbc\xfc\x8e\xfch\xfcN\xfcB\xfc>\xfcD\xfcT\xfcj\xfc
    \x84\xfc\x98\xfc\xaa\xfc\xb8\xfc\xbc\xfc\xb8\xfc\xac\xfc\x9e\xfc\x86\xfcp\xfc`\x
    fcN\xfcD\xfcD\xfcP\xfc`\xfcp\xfc\x84\xfc\x98\xfc\xac\xfc\xb4\xfc\xb6\xfc\xb2\xfc
    \xa4\xfc\x96\xfc~\xfcb\xfcN\xfc>\xfc0\xfc,\xfc0\xfc:\xfcH\xfcT\xfcd\xfcj\xfcl\xf
    c`\xfcJ\xfc.\xfc\x04\xfb\xd4\xfb\xa2\xfbp\xfbD\xfb0\xfb2\xfbF\xfbh\xfb\x9a\xfb\x
    da\xfc\x1e\xfcd\xfc\xb4\xfd\x06\xfdJ\xfd\x82\xfd\xa2\xfd\xb6\xfd\xb2\xfd\xa2\xfd
    \x94\xfd\x84\xfdn\xfdV\xfd:\xfd\x1e\xfd\x00\xfc\xe6\xfc\xd6\xfc\xd4\xfc\xda\xfc\
    xde\xfc\xee\xfd\x04\xfd*\xfd\\\xfd\xa4
    


  • schon geloest:

    y_data = struct.unpack(str(len(y_data)/2) + "h", y_data)
    y_data = list(y_data)
    

    kann man das eventuell direkt in eine liste schmeissen?


Anmelden zum Antworten