@ikalogic/at1000 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/chunk-DjWAcSYV.cjs +1 -0
  2. package/dist/com-BHaGVMz5.cjs +2 -0
  3. package/dist/com-BHaGVMz5.cjs.map +1 -0
  4. package/dist/com-BdsqVRMC.mjs +2 -0
  5. package/dist/com-BdsqVRMC.mjs.map +1 -0
  6. package/dist/com-DCoBgRma.d.mts +606 -0
  7. package/dist/com-DCoBgRma.d.mts.map +1 -0
  8. package/dist/com-J1K8y_90.d.cts +606 -0
  9. package/dist/com-J1K8y_90.d.cts.map +1 -0
  10. package/dist/com.cjs +1 -0
  11. package/dist/com.d.cts +2 -0
  12. package/dist/com.d.mts +2 -0
  13. package/dist/com.mjs +1 -0
  14. package/dist/common-ClinPNdn.d.mts +8 -0
  15. package/dist/common-ClinPNdn.d.mts.map +1 -0
  16. package/dist/common-CsBdb633.d.cts +8 -0
  17. package/dist/common-CsBdb633.d.cts.map +1 -0
  18. package/dist/common-DSzy5K03.mjs +2 -0
  19. package/dist/common-DSzy5K03.mjs.map +1 -0
  20. package/dist/common-ix04NEFn.cjs +2 -0
  21. package/dist/common-ix04NEFn.cjs.map +1 -0
  22. package/dist/discovery.cjs +2 -0
  23. package/dist/discovery.cjs.map +1 -0
  24. package/dist/discovery.d.cts +14 -0
  25. package/dist/discovery.d.cts.map +1 -0
  26. package/dist/discovery.d.mts +14 -0
  27. package/dist/discovery.d.mts.map +1 -0
  28. package/dist/discovery.mjs +2 -0
  29. package/dist/discovery.mjs.map +1 -0
  30. package/dist/gpio-BQXV_UtO.d.cts +253 -0
  31. package/dist/gpio-BQXV_UtO.d.cts.map +1 -0
  32. package/dist/gpio-CxHnpe7Y.mjs +2 -0
  33. package/dist/gpio-CxHnpe7Y.mjs.map +1 -0
  34. package/dist/gpio-D4KyCVtn.d.mts +253 -0
  35. package/dist/gpio-D4KyCVtn.d.mts.map +1 -0
  36. package/dist/gpio-DSTG-dmv.cjs +2 -0
  37. package/dist/gpio-DSTG-dmv.cjs.map +1 -0
  38. package/dist/gpio.cjs +1 -0
  39. package/dist/gpio.d.cts +4 -0
  40. package/dist/gpio.d.mts +4 -0
  41. package/dist/gpio.mjs +1 -0
  42. package/dist/hmi-B04X0czX.mjs +2 -0
  43. package/dist/hmi-B04X0czX.mjs.map +1 -0
  44. package/dist/hmi-BMM-GMeM.d.mts +113 -0
  45. package/dist/hmi-BMM-GMeM.d.mts.map +1 -0
  46. package/dist/hmi-Cx7xLvkd.d.cts +113 -0
  47. package/dist/hmi-Cx7xLvkd.d.cts.map +1 -0
  48. package/dist/hmi-DSFhbR-Y.cjs +2 -0
  49. package/dist/hmi-DSFhbR-Y.cjs.map +1 -0
  50. package/dist/hmi.cjs +1 -0
  51. package/dist/hmi.d.cts +2 -0
  52. package/dist/hmi.d.mts +2 -0
  53. package/dist/hmi.mjs +1 -0
  54. package/dist/index--f0Eile9.d.mts +49 -0
  55. package/dist/index--f0Eile9.d.mts.map +1 -0
  56. package/dist/index-CSex8Zr4.d.cts +49 -0
  57. package/dist/index-CSex8Zr4.d.cts.map +1 -0
  58. package/dist/index.cjs +1 -0
  59. package/dist/index.d.cts +9 -0
  60. package/dist/index.d.mts +9 -0
  61. package/dist/index.mjs +1 -0
  62. package/dist/management-B758IJfF.cjs +2 -0
  63. package/dist/management-B758IJfF.cjs.map +1 -0
  64. package/dist/management-BRYyWntE.mjs +2 -0
  65. package/dist/management-BRYyWntE.mjs.map +1 -0
  66. package/dist/management-CecISx9d.d.cts +243 -0
  67. package/dist/management-CecISx9d.d.cts.map +1 -0
  68. package/dist/management-DYOPvugC.d.mts +243 -0
  69. package/dist/management-DYOPvugC.d.mts.map +1 -0
  70. package/dist/management.cjs +1 -0
  71. package/dist/management.d.cts +2 -0
  72. package/dist/management.d.mts +2 -0
  73. package/dist/management.mjs +1 -0
  74. package/dist/power--6z_aXLw.d.mts +339 -0
  75. package/dist/power--6z_aXLw.d.mts.map +1 -0
  76. package/dist/power-AuGIL43h.d.cts +339 -0
  77. package/dist/power-AuGIL43h.d.cts.map +1 -0
  78. package/dist/power-DtLWOEQI.cjs +2 -0
  79. package/dist/power-DtLWOEQI.cjs.map +1 -0
  80. package/dist/power-kf9bMNDS.mjs +2 -0
  81. package/dist/power-kf9bMNDS.mjs.map +1 -0
  82. package/dist/power.cjs +1 -0
  83. package/dist/power.d.cts +4 -0
  84. package/dist/power.d.mts +4 -0
  85. package/dist/power.mjs +1 -0
  86. package/dist/relays-8a3YZaV7.cjs +2 -0
  87. package/dist/relays-8a3YZaV7.cjs.map +1 -0
  88. package/dist/relays-CGntlBiE.d.mts +77 -0
  89. package/dist/relays-CGntlBiE.d.mts.map +1 -0
  90. package/dist/relays-Cwtrx0B-.mjs +2 -0
  91. package/dist/relays-Cwtrx0B-.mjs.map +1 -0
  92. package/dist/relays-Dn_EI0HH.d.cts +77 -0
  93. package/dist/relays-Dn_EI0HH.d.cts.map +1 -0
  94. package/dist/relays.cjs +1 -0
  95. package/dist/relays.d.cts +2 -0
  96. package/dist/relays.d.mts +2 -0
  97. package/dist/relays.mjs +1 -0
  98. package/dist/src-3DKHMeTA.mjs +2 -0
  99. package/dist/src-3DKHMeTA.mjs.map +1 -0
  100. package/dist/src-CJhZ2EuZ.cjs +2 -0
  101. package/dist/src-CJhZ2EuZ.cjs.map +1 -0
  102. package/package.json +124 -0
@@ -0,0 +1 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-DjWAcSYV.cjs`);let t=require(`valibot`);t=e.t(t);const n=t.object({can_id:t.number(),data:t.pipe(t.array(t.number()),t.minLength(0),t.maxLength(8))}),r=t.pipe(t.array(t.number()),t.minLength(0),t.maxLength(1024)),i=t.object({address:t.number(),start:t.boolean(),stop:t.boolean(),nack_last_byte:t.boolean()}),a=t.intersect([t.partial(i,[`start`,`stop`,`nack_last_byte`]),t.object({length:t.pipe(t.number(),t.minValue(1),t.maxValue(1024))})]),o=t.intersect([t.partial(i,[`start`,`stop`,`nack_last_byte`]),t.object({data:r})]),s=t.object({enabled:t.boolean(),baud_rate:t.picklist([5e3,1e4,2e4,31250,33e3,4e4,5e4,8e4,83300,95e3,1e5,125e3,2e5,25e4,5e5,1e6]),termination_resistors:t.boolean(),rx_filter:t.object({extended_id:t.boolean(),id:t.number(),mask:t.number()})}),c=t.partial(s),l=t.object({enabled:t.boolean(),baud_rate:t.pipe(t.number(),t.minValue(300),t.maxValue(1e6))}),u=t.partial(l),d=t.object({enabled:t.boolean(),baud_rate:t.pipe(t.number(),t.minValue(300),t.maxValue(2e7)),termination_resistors:t.boolean()}),f=t.partial(d),p=t.object({enabled:t.boolean(),baud_rate:t.pipe(t.number(),t.minValue(300),t.maxValue(24e6)),vcc:t.pipe(t.number(),t.minValue(1.6),t.maxValue(5))}),m=t.partial(p),h=t.object({enabled:t.boolean(),baud_rate:t.picklist([1e5,4e5,1e6]),vcc:t.pipe(t.number(),t.minValue(1.6),t.maxValue(5))}),g=t.partial(h),_=t.object({enabled:t.boolean(),baud_rate:t.pipe(t.number(),t.minValue(300),t.maxValue(12e6)),vcc:t.pipe(t.number(),t.minValue(1.6),t.maxValue(5))}),v=t.partial(_);var y=class{constructor(e){this.fetch=e}reset(){return this.fetch(`/com/reset`,{method:`POST`,parseResponse:()=>{}})}can(e){return new b(this.fetch,e)}rs232(e){return new x(this.fetch,e)}rs485(e){return new S(this.fetch,e)}spi(e){return new C(this.fetch,e)}i2c(e){return new w(this.fetch,e)}uart(e){return new T(this.fetch,e)}},b=class{constructor(e,t){this.fetch=e,this.id=t}configure(e){return this.fetch(`/com/can/${this.id}/config`,{method:`PATCH`,body:t.parse(c,e),schema:s})}tx(e){return this.fetch(`/com/can/${this.id}/write`,{method:`POST`,body:t.parse(n,e),schema:n})}start_rx(){return this.fetch(`/com/can/${this.id}/start_rx`,{method:`POST`,parseResponse:()=>{}})}stop_rx(){return this.fetch(`/com/can/${this.id}/stop_rx`,{method:`POST`,parseResponse:()=>{}})}rx(){return this.fetch(`/com/can/${this.id}/read`,{schema:t.array(n)})}},x=class{constructor(e,t){this.fetch=e,this.id=t}configure(e){return this.fetch(`/com/rs232/${this.id}/config`,{method:`PATCH`,body:t.parse(u,e),schema:l})}tx(e){return this.fetch(`/com/rs232/${this.id}/write`,{method:`POST`,body:t.parse(r,e),schema:r})}start_rx(){return this.fetch(`/com/rs232/${this.id}/start_rx`,{method:`POST`,parseResponse:()=>{}})}stop_rx(){return this.fetch(`/com/rs232/${this.id}/stop_rx`,{method:`POST`,parseResponse:()=>{}})}rx(){return this.fetch(`/com/rs232/${this.id}/read`,{schema:r})}},S=class{constructor(e,t){this.fetch=e,this.id=t}configure(e){return this.fetch(`/com/rs485/${this.id}/config`,{method:`PATCH`,body:t.parse(f,e),schema:d})}tx(e){return this.fetch(`/com/rs485/${this.id}/write`,{method:`POST`,body:t.parse(r,e),schema:r})}start_rx(){return this.fetch(`/com/rs485/${this.id}/start_rx`,{method:`POST`,parseResponse:()=>{}})}stop_rx(){return this.fetch(`/com/rs485/${this.id}/stop_rx`,{method:`POST`,parseResponse:()=>{}})}rx(){return this.fetch(`/com/rs485/${this.id}/read`,{schema:r})}},C=class{constructor(e,t){this.fetch=e,this.id=t}configure(e){return this.fetch(`/com/spi/${this.id}/config`,{method:`PATCH`,body:t.parse(m,e),schema:p})}trx(e){return this.fetch(`/com/spi/${this.id}/write_read`,{method:`POST`,body:t.parse(r,e),schema:r})}},w=class{constructor(e,t){this.fetch=e,this.id=t}configure(e){return this.fetch(`/com/i2c/${this.id}/config`,{method:`PATCH`,body:t.parse(g,e),schema:h})}tx(e){return this.fetch(`/com/i2c/${this.id}/write`,{method:`POST`,body:t.parse(o,e),schema:t.number()})}rx(e){return this.fetch(`/com/i2c/${this.id}/read`,{method:`POST`,body:t.parse(a,e),schema:r})}},T=class{constructor(e,t){this.fetch=e,this.id=t}configure(e){return this.fetch(`/com/uart/${this.id}/config`,{method:`PATCH`,body:t.parse(v,e),schema:_})}tx(e){return this.fetch(`/com/uart/${this.id}/write`,{method:`POST`,body:t.parse(r,e)})}start_rx(){return this.fetch(`/com/uart/${this.id}/start_rx`,{method:`POST`,parseResponse:()=>{}})}stop_rx(){return this.fetch(`/com/uart/${this.id}/stop_rx`,{method:`POST`,parseResponse:()=>{}})}rx(){return this.fetch(`/com/uart/${this.id}/read`,{schema:r})}};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});
2
+ //# sourceMappingURL=com-BHaGVMz5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"com-BHaGVMz5.cjs","names":["v","fetch: UpFetch","id: number"],"sources":["../src/api/com.ts"],"sourcesContent":["import type { UpFetch } from 'up-fetch';\nimport * as v from 'valibot';\n\nconst canFrame = v.object({\n can_id: v.number(),\n data: v.pipe(v.array(v.number()), v.minLength(0), v.maxLength(8)),\n});\nexport type CanFrame = v.InferOutput<typeof canFrame>;\n\nconst serialData = v.pipe(v.array(v.number()), v.minLength(0), v.maxLength(1024));\nexport type SerialData = v.InferOutput<typeof serialData>;\n\nconst i2cTransactionBase = v.object({\n address: v.number(),\n start: v.boolean(),\n stop: v.boolean(),\n nack_last_byte: v.boolean(),\n});\nconst i2cTransactionRead = v.intersect([\n v.partial(i2cTransactionBase, ['start', 'stop', 'nack_last_byte']),\n v.object({ length: v.pipe(v.number(), v.minValue(1), v.maxValue(1024)) }),\n]);\ntype I2cTransactionRead = v.InferOutput<typeof i2cTransactionRead>;\nconst i2cTransactionWrite = v.intersect([\n v.partial(i2cTransactionBase, ['start', 'stop', 'nack_last_byte']),\n v.object({ data: serialData }),\n]);\ntype I2cTransactionWrite = v.InferOutput<typeof i2cTransactionWrite>;\n\nconst canConfig = v.object({\n enabled: v.boolean(),\n baud_rate: v.picklist([5_000, 10_000, 20_000, 31_250, 33_000, 40_000, 50_000, 80_000, 83_300,\n 95_000, 100_000, 125_000, 200_000, 250_000, 500_000, 1_000_000]),\n termination_resistors: v.boolean(),\n rx_filter: v.object({ extended_id: v.boolean(), id: v.number(), mask: v.number() }),\n});\nexport type CanConfig = v.InferOutput<typeof canConfig>;\nconst canConfigPatch = v.partial(canConfig);\nexport type CanConfigPatch = v.InferOutput<typeof canConfigPatch>;\n\nconst rs232Config = v.object({\n enabled: v.boolean(),\n baud_rate: v.pipe(v.number(), v.minValue(300), v.maxValue(1_000_000)),\n});\nexport type Rs232Config = v.InferOutput<typeof rs232Config>;\nconst rs232ConfigPatch = v.partial(rs232Config);\nexport type Rs232ConfigPatch = v.InferOutput<typeof rs232ConfigPatch>;\n\nconst rs485Config = v.object({\n enabled: v.boolean(),\n baud_rate: v.pipe(v.number(), v.minValue(300), v.maxValue(20_000_000)),\n termination_resistors: v.boolean(),\n});\nexport type Rs485Config = v.InferOutput<typeof rs485Config>;\nconst rs485ConfigPatch = v.partial(rs485Config);\nexport type Rs485ConfigPatch = v.InferOutput<typeof rs485ConfigPatch>;\n\nconst spiConfig = v.object({\n enabled: v.boolean(),\n baud_rate: v.pipe(v.number(), v.minValue(300), v.maxValue(24_000_000)),\n vcc: v.pipe(v.number(), v.minValue(1.6), v.maxValue(5)),\n});\nexport type SpiConfig = v.InferOutput<typeof spiConfig>;\nconst spiConfigPatch = v.partial(spiConfig);\nexport type SpiConfigPatch = v.InferOutput<typeof spiConfigPatch>;\n\nconst i2cConfig = v.object({\n enabled: v.boolean(),\n baud_rate: v.picklist([100_000, 400_000, 1_000_000]),\n vcc: v.pipe(v.number(), v.minValue(1.6), v.maxValue(5)),\n});\nexport type I2cConfig = v.InferOutput<typeof i2cConfig>;\nconst i2cConfigPatch = v.partial(i2cConfig);\nexport type I2cConfigPatch = v.InferOutput<typeof i2cConfigPatch>;\n\nconst uartConfig = v.object({\n enabled: v.boolean(),\n baud_rate: v.pipe(v.number(), v.minValue(300), v.maxValue(12_000_000)),\n vcc: v.pipe(v.number(), v.minValue(1.6), v.maxValue(5)),\n});\nexport type UartConfig = v.InferOutput<typeof uartConfig>;\nconst uartConfigPatch = v.partial(uartConfig);\nexport type UartConfigPatch = v.InferOutput<typeof uartConfigPatch>;\n\nexport class ComApi {\n constructor(private readonly fetch: UpFetch) {}\n\n /**\n * Resets the communication interfaces.\n */\n reset(): Promise<void> {\n return this.fetch('/com/reset', { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Access a specific CAN interface by id.\n * @param id The CAN interface id.\n * @returns The CAN instance.\n */\n can(id: number): Can {\n return new Can(this.fetch, id);\n }\n\n /**\n * Access a specific RS232 interface by id.\n * @param id The RS232 interface id.\n * @returns The RS232 instance.\n */\n rs232(id: number): Rs232 {\n return new Rs232(this.fetch, id);\n }\n\n /**\n * Access a specific RS485 interface by id.\n * @param id The RS485 interface id.\n * @returns The RS485 instance.\n */\n rs485(id: number): Rs485 {\n return new Rs485(this.fetch, id);\n }\n\n /**\n * Access a specific SPI interface by id.\n * @param id The SPI interface id.\n * @returns The SPI instance.\n */\n spi(id: number): Spi {\n return new Spi(this.fetch, id);\n }\n\n /**\n * Access a specific I2C interface by id.\n * @param id The I2C interface id.\n * @returns The I2C instance.\n */\n i2c(id: number): I2c {\n return new I2c(this.fetch, id);\n }\n\n /**\n * Access a specific UART interface by id.\n * @param id The UART interface id.\n * @returns The UART instance.\n */\n uart(id: number): Uart {\n return new Uart(this.fetch, id);\n }\n}\n\nexport class Can {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the CAN interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: CanConfigPatch): Promise<CanConfig> {\n return this.fetch(`/com/can/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(canConfigPatch, config),\n schema: canConfig,\n });\n }\n\n /**\n * Transmits data over the CAN interface.\n * @param data The data to transmit.\n * @returns The transmitted data.\n */\n tx(data: CanFrame): Promise<CanFrame> {\n return this.fetch(`/com/can/${this.id}/write`, {\n method: 'POST',\n body: v.parse(canFrame, data),\n schema: canFrame,\n });\n }\n\n /**\n * Starts receiving data over the CAN interface.\n */\n start_rx(): Promise<void> {\n return this.fetch(`/com/can/${this.id}/start_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Stops receiving data over the CAN interface.\n */\n stop_rx(): Promise<void> {\n return this.fetch(`/com/can/${this.id}/stop_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Reads data from the CAN interface.\n * @returns An array of can frames.\n */\n rx(): Promise<CanFrame[]> {\n return this.fetch(`/com/can/${this.id}/read`, { schema: v.array(canFrame) });\n }\n}\n\nexport class Rs232 {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the RS232 interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: Rs232ConfigPatch): Promise<Rs232Config> {\n return this.fetch(`/com/rs232/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(rs232ConfigPatch, config),\n schema: rs232Config,\n });\n }\n\n /**\n * Transmits data over the RS232 interface.\n * @param data The data to transmit.\n * @returns The transmitted data.\n */\n tx(data: SerialData): Promise<SerialData> {\n return this.fetch(`/com/rs232/${this.id}/write`, {\n method: 'POST',\n body: v.parse(serialData, data),\n schema: serialData,\n });\n }\n\n /**\n * Starts receiving data over the RS232 interface.\n */\n start_rx(): Promise<void> {\n return this.fetch(`/com/rs232/${this.id}/start_rx`, {\n method: 'POST',\n parseResponse: () => {},\n });\n }\n\n /**\n * Stops receiving data over the RS232 interface.\n */\n stop_rx(): Promise<void> {\n return this.fetch(`/com/rs232/${this.id}/stop_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Reads data from the RS232 interface.\n * @returns An array containing the received data.\n */\n rx(): Promise<SerialData> {\n return this.fetch(`/com/rs232/${this.id}/read`, { schema: serialData });\n }\n}\n\nexport class Rs485 {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the RS485 interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: Rs485ConfigPatch): Promise<Rs485Config> {\n return this.fetch(`/com/rs485/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(rs485ConfigPatch, config),\n schema: rs485Config,\n });\n }\n\n /**\n * Transmits data over the RS485 interface.\n * @param data The data to transmit.\n * @returns The transmitted data.\n */\n tx(data: SerialData): Promise<SerialData> {\n return this.fetch(`/com/rs485/${this.id}/write`, {\n method: 'POST',\n body: v.parse(serialData, data),\n schema: serialData,\n });\n }\n\n /**\n * Starts receiving data over the RS485 interface.\n */\n start_rx(): Promise<void> {\n return this.fetch(`/com/rs485/${this.id}/start_rx`, {\n method: 'POST',\n parseResponse: () => {},\n });\n }\n\n /**\n * Stops receiving data over the RS485 interface.\n */\n stop_rx(): Promise<void> {\n return this.fetch(`/com/rs485/${this.id}/stop_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Reads data from the RS485 interface.\n * @returns The received data.\n */\n rx(): Promise<SerialData> {\n return this.fetch(`/com/rs485/${this.id}/read`, { schema: serialData });\n }\n}\n\nexport class Spi {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the SPI interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: SpiConfigPatch): Promise<SpiConfig> {\n return this.fetch(`/com/spi/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(spiConfigPatch, config),\n schema: spiConfig,\n });\n }\n\n /**\n * Transmits data over the SPI interface and receives the response.\n * @param data The data to transmit.\n * @returns The received response data.\n */\n trx(data: SerialData): Promise<SerialData> {\n return this.fetch(`/com/spi/${this.id}/write_read`, {\n method: 'POST',\n body: v.parse(serialData, data),\n schema: serialData,\n });\n }\n}\n\nexport class I2c {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the I2C interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: I2cConfigPatch): Promise<I2cConfig> {\n return this.fetch(`/com/i2c/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(i2cConfigPatch, config),\n schema: i2cConfig,\n });\n }\n\n tx(transaction: I2cTransactionWrite): Promise<number> {\n return this.fetch(`/com/i2c/${this.id}/write`, {\n method: 'POST',\n body: v.parse(i2cTransactionWrite, transaction),\n schema: v.number(),\n });\n }\n\n rx(transaction: I2cTransactionRead): Promise<SerialData> {\n return this.fetch(`/com/i2c/${this.id}/read`, {\n method: 'POST',\n body: v.parse(i2cTransactionRead, transaction),\n schema: serialData,\n });\n }\n}\n\nexport class Uart {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the UART interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: UartConfigPatch): Promise<UartConfig> {\n return this.fetch(`/com/uart/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(uartConfigPatch, config),\n schema: uartConfig,\n });\n }\n\n /**\n * Transmits data over the UART interface.\n * @param data The data to transmit.\n * @returns The received response data.\n */\n tx(data: SerialData): Promise<SerialData> {\n return this.fetch(`/com/uart/${this.id}/write`, {\n method: 'POST',\n body: v.parse(serialData, data),\n });\n }\n\n /**\n * Starts receiving data over the UART interface.\n */\n start_rx(): Promise<void> {\n return this.fetch(`/com/uart/${this.id}/start_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Stops receiving data over the UART interface.\n */\n stop_rx(): Promise<void> {\n return this.fetch(`/com/uart/${this.id}/stop_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Reads data from the UART interface.\n * @returns The received data.\n */\n rx(): Promise<SerialData> {\n return this.fetch(`/com/uart/${this.id}/read`, { schema: serialData });\n }\n}\n"],"mappings":"0EAGA,MAAM,EAAWA,EAAE,OAAO,CACxB,OAAQA,EAAE,QAAQ,CAClB,KAAMA,EAAE,KAAKA,EAAE,MAAMA,EAAE,QAAQ,CAAC,CAAEA,EAAE,UAAU,EAAE,CAAEA,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,CAGI,EAAaA,EAAE,KAAKA,EAAE,MAAMA,EAAE,QAAQ,CAAC,CAAEA,EAAE,UAAU,EAAE,CAAEA,EAAE,UAAU,KAAK,CAAC,CAG3E,EAAqBA,EAAE,OAAO,CAClC,QAASA,EAAE,QAAQ,CACnB,MAAOA,EAAE,SAAS,CAClB,KAAMA,EAAE,SAAS,CACjB,eAAgBA,EAAE,SAAS,CAC5B,CAAC,CACI,EAAqBA,EAAE,UAAU,CACrCA,EAAE,QAAQ,EAAoB,CAAC,QAAS,OAAQ,iBAAiB,CAAC,CAClEA,EAAE,OAAO,CAAE,OAAQA,EAAE,KAAKA,EAAE,QAAQ,CAAEA,EAAE,SAAS,EAAE,CAAEA,EAAE,SAAS,KAAK,CAAC,CAAE,CAAC,CAC1E,CAAC,CAEI,EAAsBA,EAAE,UAAU,CACtCA,EAAE,QAAQ,EAAoB,CAAC,QAAS,OAAQ,iBAAiB,CAAC,CAClEA,EAAE,OAAO,CAAE,KAAM,EAAY,CAAC,CAC/B,CAAC,CAGI,EAAYA,EAAE,OAAO,CACzB,QAASA,EAAE,SAAS,CACpB,UAAWA,EAAE,SAAS,CAAC,IAAO,IAAQ,IAAQ,MAAQ,KAAQ,IAAQ,IAAQ,IAAQ,MACpF,KAAQ,IAAS,MAAS,IAAS,KAAS,IAAS,IAAU,CAAC,CAClE,sBAAuBA,EAAE,SAAS,CAClC,UAAWA,EAAE,OAAO,CAAE,YAAaA,EAAE,SAAS,CAAE,GAAIA,EAAE,QAAQ,CAAE,KAAMA,EAAE,QAAQ,CAAE,CAAC,CACpF,CAAC,CAEI,EAAiBA,EAAE,QAAQ,EAAU,CAGrC,EAAcA,EAAE,OAAO,CAC3B,QAASA,EAAE,SAAS,CACpB,UAAWA,EAAE,KAAKA,EAAE,QAAQ,CAAEA,EAAE,SAAS,IAAI,CAAEA,EAAE,SAAS,IAAU,CAAC,CACtE,CAAC,CAEI,EAAmBA,EAAE,QAAQ,EAAY,CAGzC,EAAcA,EAAE,OAAO,CAC3B,QAASA,EAAE,SAAS,CACpB,UAAWA,EAAE,KAAKA,EAAE,QAAQ,CAAEA,EAAE,SAAS,IAAI,CAAEA,EAAE,SAAS,IAAW,CAAC,CACtE,sBAAuBA,EAAE,SAAS,CACnC,CAAC,CAEI,EAAmBA,EAAE,QAAQ,EAAY,CAGzC,EAAYA,EAAE,OAAO,CACzB,QAASA,EAAE,SAAS,CACpB,UAAWA,EAAE,KAAKA,EAAE,QAAQ,CAAEA,EAAE,SAAS,IAAI,CAAEA,EAAE,SAAS,KAAW,CAAC,CACtE,IAAKA,EAAE,KAAKA,EAAE,QAAQ,CAAEA,EAAE,SAAS,IAAI,CAAEA,EAAE,SAAS,EAAE,CAAC,CACxD,CAAC,CAEI,EAAiBA,EAAE,QAAQ,EAAU,CAGrC,EAAYA,EAAE,OAAO,CACzB,QAASA,EAAE,SAAS,CACpB,UAAWA,EAAE,SAAS,CAAC,IAAS,IAAS,IAAU,CAAC,CACpD,IAAKA,EAAE,KAAKA,EAAE,QAAQ,CAAEA,EAAE,SAAS,IAAI,CAAEA,EAAE,SAAS,EAAE,CAAC,CACxD,CAAC,CAEI,EAAiBA,EAAE,QAAQ,EAAU,CAGrC,EAAaA,EAAE,OAAO,CAC1B,QAASA,EAAE,SAAS,CACpB,UAAWA,EAAE,KAAKA,EAAE,QAAQ,CAAEA,EAAE,SAAS,IAAI,CAAEA,EAAE,SAAS,KAAW,CAAC,CACtE,IAAKA,EAAE,KAAKA,EAAE,QAAQ,CAAEA,EAAE,SAAS,IAAI,CAAEA,EAAE,SAAS,EAAE,CAAC,CACxD,CAAC,CAEI,EAAkBA,EAAE,QAAQ,EAAW,CAG7C,IAAa,EAAb,KAAoB,CAClB,YAAY,EAAiC,CAAhB,KAAA,MAAA,EAK7B,OAAuB,CACrB,OAAO,KAAK,MAAM,aAAc,CAAE,OAAQ,OAAQ,kBAAqB,GAAI,CAAC,CAQ9E,IAAI,EAAiB,CACnB,OAAO,IAAI,EAAI,KAAK,MAAO,EAAG,CAQhC,MAAM,EAAmB,CACvB,OAAO,IAAI,EAAM,KAAK,MAAO,EAAG,CAQlC,MAAM,EAAmB,CACvB,OAAO,IAAI,EAAM,KAAK,MAAO,EAAG,CAQlC,IAAI,EAAiB,CACnB,OAAO,IAAI,EAAI,KAAK,MAAO,EAAG,CAQhC,IAAI,EAAiB,CACnB,OAAO,IAAI,EAAI,KAAK,MAAO,EAAG,CAQhC,KAAK,EAAkB,CACrB,OAAO,IAAI,EAAK,KAAK,MAAO,EAAG,GAItB,EAAb,KAAiB,CACf,YAAY,EAAiC,EAA4B,CAA5C,KAAA,MAAA,EAAgC,KAAA,GAAA,EAO7D,UAAU,EAA4C,CACpD,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,SAAU,CAC9C,OAAQ,QACR,KAAMA,EAAE,MAAM,EAAgB,EAAO,CACrC,OAAQ,EACT,CAAC,CAQJ,GAAG,EAAmC,CACpC,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,QAAS,CAC7C,OAAQ,OACR,KAAMA,EAAE,MAAM,EAAU,EAAK,CAC7B,OAAQ,EACT,CAAC,CAMJ,UAA0B,CACxB,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,WAAY,CAAE,OAAQ,OAAQ,kBAAqB,GAAI,CAAC,CAMhG,SAAyB,CACvB,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,UAAW,CAAE,OAAQ,OAAQ,kBAAqB,GAAI,CAAC,CAO/F,IAA0B,CACxB,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,OAAQ,CAAE,OAAQA,EAAE,MAAM,EAAS,CAAE,CAAC,GAInE,EAAb,KAAmB,CACjB,YAAY,EAAiC,EAA4B,CAA5C,KAAA,MAAA,EAAgC,KAAA,GAAA,EAO7D,UAAU,EAAgD,CACxD,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,SAAU,CAChD,OAAQ,QACR,KAAMA,EAAE,MAAM,EAAkB,EAAO,CACvC,OAAQ,EACT,CAAC,CAQJ,GAAG,EAAuC,CACxC,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,QAAS,CAC/C,OAAQ,OACR,KAAMA,EAAE,MAAM,EAAY,EAAK,CAC/B,OAAQ,EACT,CAAC,CAMJ,UAA0B,CACxB,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,WAAY,CAClD,OAAQ,OACR,kBAAqB,GACtB,CAAC,CAMJ,SAAyB,CACvB,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,UAAW,CAAE,OAAQ,OAAQ,kBAAqB,GAAI,CAAC,CAOjG,IAA0B,CACxB,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,OAAQ,CAAE,OAAQ,EAAY,CAAC,GAI9D,EAAb,KAAmB,CACjB,YAAY,EAAiC,EAA4B,CAA5C,KAAA,MAAA,EAAgC,KAAA,GAAA,EAO7D,UAAU,EAAgD,CACxD,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,SAAU,CAChD,OAAQ,QACR,KAAMA,EAAE,MAAM,EAAkB,EAAO,CACvC,OAAQ,EACT,CAAC,CAQJ,GAAG,EAAuC,CACxC,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,QAAS,CAC/C,OAAQ,OACR,KAAMA,EAAE,MAAM,EAAY,EAAK,CAC/B,OAAQ,EACT,CAAC,CAMJ,UAA0B,CACxB,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,WAAY,CAClD,OAAQ,OACR,kBAAqB,GACtB,CAAC,CAMJ,SAAyB,CACvB,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,UAAW,CAAE,OAAQ,OAAQ,kBAAqB,GAAI,CAAC,CAOjG,IAA0B,CACxB,OAAO,KAAK,MAAM,cAAc,KAAK,GAAG,OAAQ,CAAE,OAAQ,EAAY,CAAC,GAI9D,EAAb,KAAiB,CACf,YAAY,EAAiC,EAA4B,CAA5C,KAAA,MAAA,EAAgC,KAAA,GAAA,EAO7D,UAAU,EAA4C,CACpD,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,SAAU,CAC9C,OAAQ,QACR,KAAMA,EAAE,MAAM,EAAgB,EAAO,CACrC,OAAQ,EACT,CAAC,CAQJ,IAAI,EAAuC,CACzC,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,aAAc,CAClD,OAAQ,OACR,KAAMA,EAAE,MAAM,EAAY,EAAK,CAC/B,OAAQ,EACT,CAAC,GAIO,EAAb,KAAiB,CACf,YAAY,EAAiC,EAA4B,CAA5C,KAAA,MAAA,EAAgC,KAAA,GAAA,EAO7D,UAAU,EAA4C,CACpD,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,SAAU,CAC9C,OAAQ,QACR,KAAMA,EAAE,MAAM,EAAgB,EAAO,CACrC,OAAQ,EACT,CAAC,CAGJ,GAAG,EAAmD,CACpD,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,QAAS,CAC7C,OAAQ,OACR,KAAMA,EAAE,MAAM,EAAqB,EAAY,CAC/C,OAAQA,EAAE,QAAQ,CACnB,CAAC,CAGJ,GAAG,EAAsD,CACvD,OAAO,KAAK,MAAM,YAAY,KAAK,GAAG,OAAQ,CAC5C,OAAQ,OACR,KAAMA,EAAE,MAAM,EAAoB,EAAY,CAC9C,OAAQ,EACT,CAAC,GAIO,EAAb,KAAkB,CAChB,YAAY,EAAiC,EAA4B,CAA5C,KAAA,MAAA,EAAgC,KAAA,GAAA,EAO7D,UAAU,EAA8C,CACtD,OAAO,KAAK,MAAM,aAAa,KAAK,GAAG,SAAU,CAC/C,OAAQ,QACR,KAAMA,EAAE,MAAM,EAAiB,EAAO,CACtC,OAAQ,EACT,CAAC,CAQJ,GAAG,EAAuC,CACxC,OAAO,KAAK,MAAM,aAAa,KAAK,GAAG,QAAS,CAC9C,OAAQ,OACR,KAAMA,EAAE,MAAM,EAAY,EAAK,CAChC,CAAC,CAMJ,UAA0B,CACxB,OAAO,KAAK,MAAM,aAAa,KAAK,GAAG,WAAY,CAAE,OAAQ,OAAQ,kBAAqB,GAAI,CAAC,CAMjG,SAAyB,CACvB,OAAO,KAAK,MAAM,aAAa,KAAK,GAAG,UAAW,CAAE,OAAQ,OAAQ,kBAAqB,GAAI,CAAC,CAOhG,IAA0B,CACxB,OAAO,KAAK,MAAM,aAAa,KAAK,GAAG,OAAQ,CAAE,OAAQ,EAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ import*as e from"valibot";const t=e.object({can_id:e.number(),data:e.pipe(e.array(e.number()),e.minLength(0),e.maxLength(8))}),n=e.pipe(e.array(e.number()),e.minLength(0),e.maxLength(1024)),r=e.object({address:e.number(),start:e.boolean(),stop:e.boolean(),nack_last_byte:e.boolean()}),i=e.intersect([e.partial(r,[`start`,`stop`,`nack_last_byte`]),e.object({length:e.pipe(e.number(),e.minValue(1),e.maxValue(1024))})]),a=e.intersect([e.partial(r,[`start`,`stop`,`nack_last_byte`]),e.object({data:n})]),o=e.object({enabled:e.boolean(),baud_rate:e.picklist([5e3,1e4,2e4,31250,33e3,4e4,5e4,8e4,83300,95e3,1e5,125e3,2e5,25e4,5e5,1e6]),termination_resistors:e.boolean(),rx_filter:e.object({extended_id:e.boolean(),id:e.number(),mask:e.number()})}),s=e.partial(o),c=e.object({enabled:e.boolean(),baud_rate:e.pipe(e.number(),e.minValue(300),e.maxValue(1e6))}),l=e.partial(c),u=e.object({enabled:e.boolean(),baud_rate:e.pipe(e.number(),e.minValue(300),e.maxValue(2e7)),termination_resistors:e.boolean()}),d=e.partial(u),f=e.object({enabled:e.boolean(),baud_rate:e.pipe(e.number(),e.minValue(300),e.maxValue(24e6)),vcc:e.pipe(e.number(),e.minValue(1.6),e.maxValue(5))}),p=e.partial(f),m=e.object({enabled:e.boolean(),baud_rate:e.picklist([1e5,4e5,1e6]),vcc:e.pipe(e.number(),e.minValue(1.6),e.maxValue(5))}),h=e.partial(m),g=e.object({enabled:e.boolean(),baud_rate:e.pipe(e.number(),e.minValue(300),e.maxValue(12e6)),vcc:e.pipe(e.number(),e.minValue(1.6),e.maxValue(5))}),_=e.partial(g);var v=class{constructor(e){this.fetch=e}reset(){return this.fetch(`/com/reset`,{method:`POST`,parseResponse:()=>{}})}can(e){return new y(this.fetch,e)}rs232(e){return new b(this.fetch,e)}rs485(e){return new x(this.fetch,e)}spi(e){return new S(this.fetch,e)}i2c(e){return new C(this.fetch,e)}uart(e){return new w(this.fetch,e)}},y=class{constructor(e,t){this.fetch=e,this.id=t}configure(t){return this.fetch(`/com/can/${this.id}/config`,{method:`PATCH`,body:e.parse(s,t),schema:o})}tx(n){return this.fetch(`/com/can/${this.id}/write`,{method:`POST`,body:e.parse(t,n),schema:t})}start_rx(){return this.fetch(`/com/can/${this.id}/start_rx`,{method:`POST`,parseResponse:()=>{}})}stop_rx(){return this.fetch(`/com/can/${this.id}/stop_rx`,{method:`POST`,parseResponse:()=>{}})}rx(){return this.fetch(`/com/can/${this.id}/read`,{schema:e.array(t)})}},b=class{constructor(e,t){this.fetch=e,this.id=t}configure(t){return this.fetch(`/com/rs232/${this.id}/config`,{method:`PATCH`,body:e.parse(l,t),schema:c})}tx(t){return this.fetch(`/com/rs232/${this.id}/write`,{method:`POST`,body:e.parse(n,t),schema:n})}start_rx(){return this.fetch(`/com/rs232/${this.id}/start_rx`,{method:`POST`,parseResponse:()=>{}})}stop_rx(){return this.fetch(`/com/rs232/${this.id}/stop_rx`,{method:`POST`,parseResponse:()=>{}})}rx(){return this.fetch(`/com/rs232/${this.id}/read`,{schema:n})}},x=class{constructor(e,t){this.fetch=e,this.id=t}configure(t){return this.fetch(`/com/rs485/${this.id}/config`,{method:`PATCH`,body:e.parse(d,t),schema:u})}tx(t){return this.fetch(`/com/rs485/${this.id}/write`,{method:`POST`,body:e.parse(n,t),schema:n})}start_rx(){return this.fetch(`/com/rs485/${this.id}/start_rx`,{method:`POST`,parseResponse:()=>{}})}stop_rx(){return this.fetch(`/com/rs485/${this.id}/stop_rx`,{method:`POST`,parseResponse:()=>{}})}rx(){return this.fetch(`/com/rs485/${this.id}/read`,{schema:n})}},S=class{constructor(e,t){this.fetch=e,this.id=t}configure(t){return this.fetch(`/com/spi/${this.id}/config`,{method:`PATCH`,body:e.parse(p,t),schema:f})}trx(t){return this.fetch(`/com/spi/${this.id}/write_read`,{method:`POST`,body:e.parse(n,t),schema:n})}},C=class{constructor(e,t){this.fetch=e,this.id=t}configure(t){return this.fetch(`/com/i2c/${this.id}/config`,{method:`PATCH`,body:e.parse(h,t),schema:m})}tx(t){return this.fetch(`/com/i2c/${this.id}/write`,{method:`POST`,body:e.parse(a,t),schema:e.number()})}rx(t){return this.fetch(`/com/i2c/${this.id}/read`,{method:`POST`,body:e.parse(i,t),schema:n})}},w=class{constructor(e,t){this.fetch=e,this.id=t}configure(t){return this.fetch(`/com/uart/${this.id}/config`,{method:`PATCH`,body:e.parse(_,t),schema:g})}tx(t){return this.fetch(`/com/uart/${this.id}/write`,{method:`POST`,body:e.parse(n,t)})}start_rx(){return this.fetch(`/com/uart/${this.id}/start_rx`,{method:`POST`,parseResponse:()=>{}})}stop_rx(){return this.fetch(`/com/uart/${this.id}/stop_rx`,{method:`POST`,parseResponse:()=>{}})}rx(){return this.fetch(`/com/uart/${this.id}/read`,{schema:n})}};export{x as a,b as i,v as n,S as o,C as r,w as s,y as t};
2
+ //# sourceMappingURL=com-BdsqVRMC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"com-BdsqVRMC.mjs","names":["fetch: UpFetch","id: number"],"sources":["../src/api/com.ts"],"sourcesContent":["import type { UpFetch } from 'up-fetch';\nimport * as v from 'valibot';\n\nconst canFrame = v.object({\n can_id: v.number(),\n data: v.pipe(v.array(v.number()), v.minLength(0), v.maxLength(8)),\n});\nexport type CanFrame = v.InferOutput<typeof canFrame>;\n\nconst serialData = v.pipe(v.array(v.number()), v.minLength(0), v.maxLength(1024));\nexport type SerialData = v.InferOutput<typeof serialData>;\n\nconst i2cTransactionBase = v.object({\n address: v.number(),\n start: v.boolean(),\n stop: v.boolean(),\n nack_last_byte: v.boolean(),\n});\nconst i2cTransactionRead = v.intersect([\n v.partial(i2cTransactionBase, ['start', 'stop', 'nack_last_byte']),\n v.object({ length: v.pipe(v.number(), v.minValue(1), v.maxValue(1024)) }),\n]);\ntype I2cTransactionRead = v.InferOutput<typeof i2cTransactionRead>;\nconst i2cTransactionWrite = v.intersect([\n v.partial(i2cTransactionBase, ['start', 'stop', 'nack_last_byte']),\n v.object({ data: serialData }),\n]);\ntype I2cTransactionWrite = v.InferOutput<typeof i2cTransactionWrite>;\n\nconst canConfig = v.object({\n enabled: v.boolean(),\n baud_rate: v.picklist([5_000, 10_000, 20_000, 31_250, 33_000, 40_000, 50_000, 80_000, 83_300,\n 95_000, 100_000, 125_000, 200_000, 250_000, 500_000, 1_000_000]),\n termination_resistors: v.boolean(),\n rx_filter: v.object({ extended_id: v.boolean(), id: v.number(), mask: v.number() }),\n});\nexport type CanConfig = v.InferOutput<typeof canConfig>;\nconst canConfigPatch = v.partial(canConfig);\nexport type CanConfigPatch = v.InferOutput<typeof canConfigPatch>;\n\nconst rs232Config = v.object({\n enabled: v.boolean(),\n baud_rate: v.pipe(v.number(), v.minValue(300), v.maxValue(1_000_000)),\n});\nexport type Rs232Config = v.InferOutput<typeof rs232Config>;\nconst rs232ConfigPatch = v.partial(rs232Config);\nexport type Rs232ConfigPatch = v.InferOutput<typeof rs232ConfigPatch>;\n\nconst rs485Config = v.object({\n enabled: v.boolean(),\n baud_rate: v.pipe(v.number(), v.minValue(300), v.maxValue(20_000_000)),\n termination_resistors: v.boolean(),\n});\nexport type Rs485Config = v.InferOutput<typeof rs485Config>;\nconst rs485ConfigPatch = v.partial(rs485Config);\nexport type Rs485ConfigPatch = v.InferOutput<typeof rs485ConfigPatch>;\n\nconst spiConfig = v.object({\n enabled: v.boolean(),\n baud_rate: v.pipe(v.number(), v.minValue(300), v.maxValue(24_000_000)),\n vcc: v.pipe(v.number(), v.minValue(1.6), v.maxValue(5)),\n});\nexport type SpiConfig = v.InferOutput<typeof spiConfig>;\nconst spiConfigPatch = v.partial(spiConfig);\nexport type SpiConfigPatch = v.InferOutput<typeof spiConfigPatch>;\n\nconst i2cConfig = v.object({\n enabled: v.boolean(),\n baud_rate: v.picklist([100_000, 400_000, 1_000_000]),\n vcc: v.pipe(v.number(), v.minValue(1.6), v.maxValue(5)),\n});\nexport type I2cConfig = v.InferOutput<typeof i2cConfig>;\nconst i2cConfigPatch = v.partial(i2cConfig);\nexport type I2cConfigPatch = v.InferOutput<typeof i2cConfigPatch>;\n\nconst uartConfig = v.object({\n enabled: v.boolean(),\n baud_rate: v.pipe(v.number(), v.minValue(300), v.maxValue(12_000_000)),\n vcc: v.pipe(v.number(), v.minValue(1.6), v.maxValue(5)),\n});\nexport type UartConfig = v.InferOutput<typeof uartConfig>;\nconst uartConfigPatch = v.partial(uartConfig);\nexport type UartConfigPatch = v.InferOutput<typeof uartConfigPatch>;\n\nexport class ComApi {\n constructor(private readonly fetch: UpFetch) {}\n\n /**\n * Resets the communication interfaces.\n */\n reset(): Promise<void> {\n return this.fetch('/com/reset', { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Access a specific CAN interface by id.\n * @param id The CAN interface id.\n * @returns The CAN instance.\n */\n can(id: number): Can {\n return new Can(this.fetch, id);\n }\n\n /**\n * Access a specific RS232 interface by id.\n * @param id The RS232 interface id.\n * @returns The RS232 instance.\n */\n rs232(id: number): Rs232 {\n return new Rs232(this.fetch, id);\n }\n\n /**\n * Access a specific RS485 interface by id.\n * @param id The RS485 interface id.\n * @returns The RS485 instance.\n */\n rs485(id: number): Rs485 {\n return new Rs485(this.fetch, id);\n }\n\n /**\n * Access a specific SPI interface by id.\n * @param id The SPI interface id.\n * @returns The SPI instance.\n */\n spi(id: number): Spi {\n return new Spi(this.fetch, id);\n }\n\n /**\n * Access a specific I2C interface by id.\n * @param id The I2C interface id.\n * @returns The I2C instance.\n */\n i2c(id: number): I2c {\n return new I2c(this.fetch, id);\n }\n\n /**\n * Access a specific UART interface by id.\n * @param id The UART interface id.\n * @returns The UART instance.\n */\n uart(id: number): Uart {\n return new Uart(this.fetch, id);\n }\n}\n\nexport class Can {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the CAN interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: CanConfigPatch): Promise<CanConfig> {\n return this.fetch(`/com/can/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(canConfigPatch, config),\n schema: canConfig,\n });\n }\n\n /**\n * Transmits data over the CAN interface.\n * @param data The data to transmit.\n * @returns The transmitted data.\n */\n tx(data: CanFrame): Promise<CanFrame> {\n return this.fetch(`/com/can/${this.id}/write`, {\n method: 'POST',\n body: v.parse(canFrame, data),\n schema: canFrame,\n });\n }\n\n /**\n * Starts receiving data over the CAN interface.\n */\n start_rx(): Promise<void> {\n return this.fetch(`/com/can/${this.id}/start_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Stops receiving data over the CAN interface.\n */\n stop_rx(): Promise<void> {\n return this.fetch(`/com/can/${this.id}/stop_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Reads data from the CAN interface.\n * @returns An array of can frames.\n */\n rx(): Promise<CanFrame[]> {\n return this.fetch(`/com/can/${this.id}/read`, { schema: v.array(canFrame) });\n }\n}\n\nexport class Rs232 {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the RS232 interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: Rs232ConfigPatch): Promise<Rs232Config> {\n return this.fetch(`/com/rs232/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(rs232ConfigPatch, config),\n schema: rs232Config,\n });\n }\n\n /**\n * Transmits data over the RS232 interface.\n * @param data The data to transmit.\n * @returns The transmitted data.\n */\n tx(data: SerialData): Promise<SerialData> {\n return this.fetch(`/com/rs232/${this.id}/write`, {\n method: 'POST',\n body: v.parse(serialData, data),\n schema: serialData,\n });\n }\n\n /**\n * Starts receiving data over the RS232 interface.\n */\n start_rx(): Promise<void> {\n return this.fetch(`/com/rs232/${this.id}/start_rx`, {\n method: 'POST',\n parseResponse: () => {},\n });\n }\n\n /**\n * Stops receiving data over the RS232 interface.\n */\n stop_rx(): Promise<void> {\n return this.fetch(`/com/rs232/${this.id}/stop_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Reads data from the RS232 interface.\n * @returns An array containing the received data.\n */\n rx(): Promise<SerialData> {\n return this.fetch(`/com/rs232/${this.id}/read`, { schema: serialData });\n }\n}\n\nexport class Rs485 {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the RS485 interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: Rs485ConfigPatch): Promise<Rs485Config> {\n return this.fetch(`/com/rs485/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(rs485ConfigPatch, config),\n schema: rs485Config,\n });\n }\n\n /**\n * Transmits data over the RS485 interface.\n * @param data The data to transmit.\n * @returns The transmitted data.\n */\n tx(data: SerialData): Promise<SerialData> {\n return this.fetch(`/com/rs485/${this.id}/write`, {\n method: 'POST',\n body: v.parse(serialData, data),\n schema: serialData,\n });\n }\n\n /**\n * Starts receiving data over the RS485 interface.\n */\n start_rx(): Promise<void> {\n return this.fetch(`/com/rs485/${this.id}/start_rx`, {\n method: 'POST',\n parseResponse: () => {},\n });\n }\n\n /**\n * Stops receiving data over the RS485 interface.\n */\n stop_rx(): Promise<void> {\n return this.fetch(`/com/rs485/${this.id}/stop_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Reads data from the RS485 interface.\n * @returns The received data.\n */\n rx(): Promise<SerialData> {\n return this.fetch(`/com/rs485/${this.id}/read`, { schema: serialData });\n }\n}\n\nexport class Spi {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the SPI interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: SpiConfigPatch): Promise<SpiConfig> {\n return this.fetch(`/com/spi/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(spiConfigPatch, config),\n schema: spiConfig,\n });\n }\n\n /**\n * Transmits data over the SPI interface and receives the response.\n * @param data The data to transmit.\n * @returns The received response data.\n */\n trx(data: SerialData): Promise<SerialData> {\n return this.fetch(`/com/spi/${this.id}/write_read`, {\n method: 'POST',\n body: v.parse(serialData, data),\n schema: serialData,\n });\n }\n}\n\nexport class I2c {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the I2C interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: I2cConfigPatch): Promise<I2cConfig> {\n return this.fetch(`/com/i2c/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(i2cConfigPatch, config),\n schema: i2cConfig,\n });\n }\n\n tx(transaction: I2cTransactionWrite): Promise<number> {\n return this.fetch(`/com/i2c/${this.id}/write`, {\n method: 'POST',\n body: v.parse(i2cTransactionWrite, transaction),\n schema: v.number(),\n });\n }\n\n rx(transaction: I2cTransactionRead): Promise<SerialData> {\n return this.fetch(`/com/i2c/${this.id}/read`, {\n method: 'POST',\n body: v.parse(i2cTransactionRead, transaction),\n schema: serialData,\n });\n }\n}\n\nexport class Uart {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the UART interface.\n * @param config The configuration to apply.\n * @returns The updated configuration.\n */\n configure(config: UartConfigPatch): Promise<UartConfig> {\n return this.fetch(`/com/uart/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(uartConfigPatch, config),\n schema: uartConfig,\n });\n }\n\n /**\n * Transmits data over the UART interface.\n * @param data The data to transmit.\n * @returns The received response data.\n */\n tx(data: SerialData): Promise<SerialData> {\n return this.fetch(`/com/uart/${this.id}/write`, {\n method: 'POST',\n body: v.parse(serialData, data),\n });\n }\n\n /**\n * Starts receiving data over the UART interface.\n */\n start_rx(): Promise<void> {\n return this.fetch(`/com/uart/${this.id}/start_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Stops receiving data over the UART interface.\n */\n stop_rx(): Promise<void> {\n return this.fetch(`/com/uart/${this.id}/stop_rx`, { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Reads data from the UART interface.\n * @returns The received data.\n */\n rx(): Promise<SerialData> {\n return this.fetch(`/com/uart/${this.id}/read`, { schema: serialData });\n }\n}\n"],"mappings":"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"}