Devices.proto 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. syntax = "proto3";
  2. package sys;
  3. import "GPIO.proto";
  4. import "Common.proto";
  5. import "I2CBus.proto";
  6. import "DAC.proto";
  7. import "Display.proto";
  8. import "Buttons.proto";
  9. import "Battery.proto";
  10. import "Ethernet.proto";
  11. import "nanopb.proto";
  12. message SPDIF {
  13. option (nanopb_msgopt).msgid = 10015;
  14. GPIO dc = 1;
  15. GPIO data = 2;
  16. GPIO clk = 3;
  17. }
  18. message SPIBus {
  19. option (nanopb_msgopt).msgid = 10016;
  20. GPIO mosi = 1;
  21. GPIO miso = 2;
  22. GPIO clk = 3;
  23. GPIO dc = 4;
  24. HostEnum host = 5; // Defaults to Host1 in your application logic
  25. }
  26. enum LEDStripType {
  27. LS_UNKNOWN = 0;
  28. LS_WS2812 = 1;
  29. //unsupported
  30. LS_SK6812 = 2;
  31. //unsupported
  32. LS_APA106 = 3;
  33. }
  34. message LEDStrip {
  35. option (nanopb_msgopt).msgid = 10018;
  36. GPIO gpio = 1;
  37. int32 length = 2 [(nanopb).int_size = IS_16];
  38. LEDStripType strip_type = 3;
  39. }
  40. enum InfraredType {
  41. IR_UNKNOWN = 0;
  42. IR_RC5 = 1;
  43. IR_NEC = 2;
  44. }
  45. message Infrared {
  46. InfraredType type = 1;
  47. GPIO gpio = 2;
  48. }
  49. message Dev {
  50. option (nanopb_msgopt).msgid = 10019;
  51. SPIBus spi = 1;
  52. I2CBus i2c = 2;
  53. DAC dac = 3;
  54. SPDIF spdif = 4;
  55. Display display = 5;
  56. repeated GPIOExp gpio_exp = 6 [(nanopb).type = FT_POINTER]; //[(nanopb).max_count= 4];
  57. LEDStrip led_strip = 7;
  58. Rotary rotary = 8;
  59. repeated Button buttons = 9 [(nanopb).type = FT_POINTER]; //[(nanopb).max_count= 15];
  60. Eth eth = 10;
  61. Battery battery = 11;
  62. Infrared ir = 12;
  63. }