
uctypes – Access Binary Data in a
Structured Format
This module implements "foreign data interface" for MicroPython. The idea behind it is
similar to CPython’s
ctypes
modules, but the actual API is different, streamlined and
optimised for small size. The basic idea of the module is to define data structure layout with
about the same power as the C language allows, and the access it using familiar dot-syntax
to reference sub-fields.
Module ustruct Standard Python way to access binary data structures (doesn’t scale
well to large and complex structures).
Defining Structure Layout
Structure layout is defined by a "descriptor" - a Python dictionary which encodes field names
as keys and other properties required to access them as associated values. Currently,
uctypes
requires explicit specification of offsets for each field. Offset are given in bytes from
a structure start.
Following are encoding examples for various field types:
Scalar types:
"field_name"
: uctypes.UINT32 |
0
In other words, value is scalar type identifier OR-ed with field offset (in bytes) from the start
of the structure.
Recursive structures:
"sub"
: (
2
, {
"b0"
: uctypes.UINT8 |
0
,
"b1"
: uctypes.UINT8 |
1
,
})
I.e. value is a 2-tuple, first element of which is offset, and second is a structure descriptor
dictionary (note: offsets in recursive descriptors are relative to a structure it defines).
Arrays of Primitive Types:
5.3.2 uctypes
348
Содержание FiPy
Страница 9: ...Product Info API Documentation Pybytes Preface 9 ...
Страница 14: ...OEM Module L01 W01 Reference Board Universal Reference Board W01 L01 L04 G01 Pycom Products 14 ...
Страница 18: ...1 1 Hardware Setup 18 ...
Страница 19: ...1 1 Hardware Setup 19 ...
Страница 66: ...1 2 3 Pymakr 66 ...
Страница 68: ...from it 1 3 Programming the modules 68 ...
Страница 77: ...import os os mkfs flash 1 3 3 Your first Pymakr project 77 ...
Страница 102: ...1 4 3 2 Objenious 102 ...
Страница 104: ...2 1 Installation 104 ...
Страница 110: ...2 1 1 Atom 110 ...
Страница 112: ...4 Within a few minutes a reload button should appear Press it to reload VSCode 2 1 2 Visual Studio Code 112 ...
Страница 113: ...5 That s it You ve installed the Pymakr Extension for VSCode 2 1 2 Visual Studio Code 113 ...
Страница 134: ...3 2 2 Installing Drivers Windows 7 134 ...
Страница 162: ...4 2 5 MQTT 162 ...
Страница 171: ...4 2 8 I2C 171 ...
Страница 179: ...4 2 11 RGB LED 179 ...
Страница 211: ...4 3 5 LoPy to LoPy 211 ...
Страница 247: ...4 7 Pysense Examples 247 ...
Страница 253: ...machine WAKEUP_ALL_LOW machine WAKEUP_ANY_HIGH 5 2 1 machine 253 ...
Страница 281: ...For more information on how Pycom s products handle interrupts see notes 5 2 1 10 Timer 281 ...
Страница 315: ...5 2 2 3 Bluetooth 315 ...
Страница 382: ...This method is NOT implemented Use ubinascii hexlify hash digest to achieve a similar effect 5 3 15 uhashlib 382 ...
Страница 384: ...ssl CERT_NONE ssl CERT_OPTIONAL ssl CERT_REQUIRED Supported values in cert_reqs 5 3 16 ussl 384 ...
Страница 392: ...hasattr hash hex id input class int isinstance issubclass iter len class list locals map 5 3 20 Builtin 392 ...
Страница 393: ...max class memoryview min next class object oct open ord pow print property range 5 3 20 Builtin 393 ...
Страница 394: ...repr reversed round class set setattr sorted staticmethod class str sum super class tuple type zip 5 3 20 Builtin 394 ...
Страница 395: ...5 3 20 Builtin 395 ...
Страница 400: ...6 1 1 WiPy 2 0 400 ...
Страница 405: ...LoRaWAN nano gateway BLE 6 1 3 LoPy 405 ...
Страница 410: ...BLE 6 1 5 SiPy 410 ...
Страница 415: ...6 1 7 FiPy 415 ...
Страница 427: ...6 2 5 L01 OEM Baseboard Reference 427 ...
Страница 430: ...6 2 6 Universal OEM Baseboard Reference 430 ...
Страница 435: ...The specsheet of the Pytrack is available as a PDF File 6 3 2 Pytrack 435 ...
Страница 437: ...The specsheet of the Pysense is available as a PDF File 6 3 3 Pysense 437 ...
Страница 440: ...Expansion Board 2 0 Pinout The pinout of the Expansion Board is available as a PDF File 6 3 5 Expansion Board 2 0 440 ...
Страница 443: ...6 3 6 Deep Sleep Shield 443 ...
Страница 449: ...OEM Module Datasheets 7 2 1 W01 7 2 2 L01 7 2 3 L04 7 2 4 G01 7 2 OEM Modules 449 ...
Страница 452: ...Visualise data from your device 8 1 Introduction 452 ...
Страница 455: ...3 Select your shield e g PySense PyTrack PyScan or other 4 Select your network option 8 3 Add a device to Pybytes 455 ...
Страница 461: ...5 The firmware updater will update the device s firmware 8 3 1 Connect to Pybytes Quick Add 461 ...
Страница 476: ...8 4 Visualise data from your device 476 ...