syntax = "proto3"; package sys.display; import "Common.proto"; import "SPI.proto"; import "nanopb.proto"; import "I2CBus.proto"; import "customoptions.proto"; option (nanopb_fileopt).enum_to_string = true; message offsets { option (nanopb_msgopt).packed_struct = true; option (nanopb_msgopt).msgid = 10020; int32 height =1 [(nanopb).int_size = IS_16]; int32 width =2 [(nanopb).int_size = IS_16]; } enum drivers { UNSPECIFIED = 0; SSD1306 = 1; SSD1322 = 2; SSD1326 = 3; SSD1327 = 4; SH1106 = 5; SSD1675 = 6; ST7735 = 7; ST7789 = 8; ILI9341 = 9; ILI9341_24 = 10; SSD1351 = 11; } message common { option (nanopb_msgopt).packed_struct = true; option (nanopb_msgopt).msgid = 10023; int32 width = 1 [(nanopb).int_size = IS_16]; int32 height = 2 [(nanopb).int_size = IS_16]; bool HFlip = 3; bool VFlip = 4; drivers driver = 5; int32 bitDepth = 6 [(nanopb).int_size = IS_8]; // Defaults to Depth1 in your application logic int32 back = 7 [(nanopb).int_size=IS_16, (cust_field).v_int32=-1]; int32 reset = 8 [(nanopb).int_size=IS_16, (cust_field).v_int32=-1]; int32 ready = 9 [(nanopb).int_size=IS_16, (cust_field).v_int32=-1]; offsets offsets = 10; bool rotate = 11; bool invert = 12; bool colow_swap = 13; } message config { option (nanopb_msgopt).packed_struct = true; option (nanopb_msgopt).msgid = 10024; dev.common.types type = 1; common common = 2; oneof dispType { sys.i2c.device i2c = 3; sys.spi.device spi = 4; } }