pw_sensor: Update validator schema to JSON schema

While the pykwalify schema validator is more compact and produces more
verbose error output, the JSON schema format is compatible with several
IDEs which makes it easier to write sensor descriptor files.

Convert the pykwalify schema to JSON schema.

Bug: b/293466822
Change-Id: I6323c11568bb2a5d7250b6b0b80465eb38b30d4f
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202925
Reviewed-by: Taylor Cramer <cramertj@google.com>
Commit-Queue: Yuval Peress <peress@google.com>
9 files changed
tree: cd5350905457208fc6ca3208ca6c75c964ff81d5
  1. .allstar/
  2. .vscode/
  3. build_overrides/
  4. docker/
  5. docs/
  6. kudzu/
  7. pw_alignment/
  8. pw_allocator/
  9. pw_analog/
  10. pw_android_toolchain/
  11. pw_arduino_build/
  12. pw_assert/
  13. pw_assert_basic/
  14. pw_assert_log/
  15. pw_assert_tokenized/
  16. pw_assert_zephyr/
  17. pw_async/
  18. pw_async2/
  19. pw_async2_basic/
  20. pw_async2_epoll/
  21. pw_async_basic/
  22. pw_base64/
  23. pw_bloat/
  24. pw_blob_store/
  25. pw_bluetooth/
  26. pw_bluetooth_hci/
  27. pw_bluetooth_profiles/
  28. pw_bluetooth_proxy/
  29. pw_bluetooth_sapphire/
  30. pw_boot/
  31. pw_boot_cortex_m/
  32. pw_build/
  33. pw_build_android/
  34. pw_build_info/
  35. pw_build_mcuxpresso/
  36. pw_bytes/
  37. pw_channel/
  38. pw_checksum/
  39. pw_chre/
  40. pw_chrono/
  41. pw_chrono_embos/
  42. pw_chrono_freertos/
  43. pw_chrono_rp2040/
  44. pw_chrono_stl/
  45. pw_chrono_threadx/
  46. pw_chrono_zephyr/
  47. pw_cli/
  48. pw_compilation_testing/
  49. pw_config_loader/
  50. pw_console/
  51. pw_containers/
  52. pw_cpu_exception/
  53. pw_cpu_exception_cortex_m/
  54. pw_crypto/
  55. pw_digital_io/
  56. pw_digital_io_linux/
  57. pw_digital_io_mcuxpresso/
  58. pw_digital_io_rp2040/
  59. pw_docgen/
  60. pw_doctor/
  61. pw_emu/
  62. pw_env_setup/
  63. pw_env_setup_zephyr/
  64. pw_file/
  65. pw_format/
  66. pw_function/
  67. pw_fuzzer/
  68. pw_grpc/
  69. pw_hdlc/
  70. pw_hex_dump/
  71. pw_i2c/
  72. pw_i2c_linux/
  73. pw_i2c_mcuxpresso/
  74. pw_i2c_rp2040/
  75. pw_ide/
  76. pw_interrupt/
  77. pw_interrupt_cortex_m/
  78. pw_interrupt_xtensa/
  79. pw_interrupt_zephyr/
  80. pw_intrusive_ptr/
  81. pw_json/
  82. pw_kvs/
  83. pw_libc/
  84. pw_libcxx/
  85. pw_log/
  86. pw_log_android/
  87. pw_log_basic/
  88. pw_log_null/
  89. pw_log_rpc/
  90. pw_log_string/
  91. pw_log_tokenized/
  92. pw_log_zephyr/
  93. pw_malloc/
  94. pw_malloc_freelist/
  95. pw_malloc_freertos/
  96. pw_metric/
  97. pw_minimal_cpp_stdlib/
  98. pw_module/
  99. pw_multibuf/
  100. pw_multisink/
  101. pw_package/
  102. pw_perf_test/
  103. pw_persistent_ram/
  104. pw_polyfill/
  105. pw_preprocessor/
  106. pw_presubmit/
  107. pw_protobuf/
  108. pw_protobuf_compiler/
  109. pw_random/
  110. pw_result/
  111. pw_ring_buffer/
  112. pw_router/
  113. pw_rpc/
  114. pw_rpc_transport/
  115. pw_rust/
  116. pw_sensor/
  117. pw_snapshot/
  118. pw_software_update/
  119. pw_span/
  120. pw_spi/
  121. pw_spi_linux/
  122. pw_spi_mcuxpresso/
  123. pw_spi_rp2040/
  124. pw_status/
  125. pw_stm32cube_build/
  126. pw_stream/
  127. pw_stream_shmem_mcuxpresso/
  128. pw_stream_uart_linux/
  129. pw_stream_uart_mcuxpresso/
  130. pw_string/
  131. pw_symbolizer/
  132. pw_sync/
  133. pw_sync_baremetal/
  134. pw_sync_embos/
  135. pw_sync_freertos/
  136. pw_sync_stl/
  137. pw_sync_threadx/
  138. pw_sync_zephyr/
  139. pw_sys_io/
  140. pw_sys_io_ambiq_sdk/
  141. pw_sys_io_arduino/
  142. pw_sys_io_baremetal_lm3s6965evb/
  143. pw_sys_io_baremetal_stm32f429/
  144. pw_sys_io_emcraft_sf2/
  145. pw_sys_io_mcuxpresso/
  146. pw_sys_io_rp2040/
  147. pw_sys_io_stdio/
  148. pw_sys_io_stm32cube/
  149. pw_sys_io_zephyr/
  150. pw_system/
  151. pw_target_runner/
  152. pw_thread/
  153. pw_thread_embos/
  154. pw_thread_freertos/
  155. pw_thread_stl/
  156. pw_thread_threadx/
  157. pw_thread_zephyr/
  158. pw_tls_client/
  159. pw_tls_client_boringssl/
  160. pw_tls_client_mbedtls/
  161. pw_tokenizer/
  162. pw_toolchain/
  163. pw_toolchain_bazel/
  164. pw_trace/
  165. pw_trace_tokenized/
  166. pw_transfer/
  167. pw_uart/
  168. pw_unit_test/
  169. pw_unit_test_zephyr/
  170. pw_varint/
  171. pw_watch/
  172. pw_web/
  173. pw_work_queue/
  174. seed/
  175. targets/
  176. third_party/
  177. ts/
  178. zephyr/
  179. .bazelignore
  180. .bazelrc
  181. .black.toml
  182. .clang-format
  183. .clang-tidy
  184. .eslintrc.cjs
  185. .git-blame-ignore-revs
  186. .gitattributes
  187. .gitignore
  188. .gn
  189. .mypy.ini
  190. .prettierignore
  191. .prettierrc.cjs
  192. .pw_ide.yaml
  193. .pylintrc
  194. activate.bat
  195. Android.bp
  196. AUTHORS
  197. bootstrap.bat
  198. bootstrap.sh
  199. BUILD.bazel
  200. BUILD.gn
  201. BUILDCONFIG.gn
  202. CMakeLists.txt
  203. jest.config.ts
  204. Kconfig.zephyr
  205. LICENSE
  206. modules.gni
  207. OWNERS
  208. package-lock.json
  209. package.json
  210. pigweed.json
  211. PIGWEED_MODULES
  212. README.md
  213. rollup.config.js
  214. tsconfig.json
  215. WORKSPACE
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links