#include #include #include "components.h" using namespace std; using namespace std; static bool check(const set &show, const char *s) { return show.size()==0 || show.count(s)>0; } extern "C" void design(const set &show) { // Le esp32 est installé sur deux headers CONNECTOR espl(0,1,0,20,CONNECT_FEMALE,"espl"); CONNECTOR espr(1,1,3,20,CONNECT_FEMALE,"espr"); if (check(show,"alim")){ auto pin1 = espl.pin(1,3); jump ("red",1,pin1,pin1.addy(1),pin1.addy(1).to_vcc()); pin1 = espr.pin(1,1); jump ("black",0,pin1,pin1.addy(1),pin1.addy(1).to_ground()); } POINT adc0(0,espl.pin_y(5),2); POINT adc1(0,espl.pin_y(6),3); POINT adc2(0,espl.pin_y(7),4); POINT adc3(0,espl.pin_y(8),5); POINT adc4(0,espl.pin_y(9),2); POINT adc5(0,espl.pin_y(10),3); POINT adc6(0,espl.pin_y(11),4); POINT adc7(0,espl.pin_y(12),5); POINT adc8(0,espl.pin_y(13),2); POINT adc9(0,espl.pin_y(15),3); POINT esp5v(0,espl.pin_y(19),1); POINT espctl1(1,espr.pin_y(2),1); POINT espctl2(1,espr.pin_y(3),1); POINT espctl3(1,espr.pin_y(6),1); CONNECTOR connect(1,22,2,20,CONNECT_MALE,"thermistor"); const char *color = "orange"; int h=2; if (check(show,"couche0")){ jump (color,h,adc0,adc0.addy(10),adc0.movehole(3).addy(10),connect.pin(2,2).switchside().movehole(3),connect.pin(2,2)); jump (color,h,adc1,adc1.addy(10),adc1.movehole(4).addy(10),connect.pin(4,2).switchside().movehole(4),connect.pin(4,2)); jump (color,h,adc2,adc2.addy(10),adc2.movehole(5).addy(10),connect.pin(6,2).switchside().movehole(5),connect.pin(6,2)); jump (color,h,adc3,adc3.addy(10),adc3.movehole(6).addy(10),connect.pin(8,2).switchside().movehole(6),connect.pin(8,2)); } h+=2; color = "green"; if (check(show,"couche1")){ jump (color,h,adc4,adc4.addy(10),adc4.movehole(3).addy(10),connect.pin(10,2).switchside().movehole(3),connect.pin(10,2)); jump (color,h,adc5,adc5.addy(10),adc5.movehole(4).addy(10),connect.pin(12,2).switchside().movehole(4),connect.pin(12,2)); jump (color,h,adc6,adc6.addy(10),adc6.movehole(5).addy(10),connect.pin(14,2).switchside().movehole(5),connect.pin(14,2)); jump (color,h,adc7,adc7.addy(10),adc7.movehole(6).addy(10),connect.pin(16,2).switchside().movehole(6),connect.pin(16,2)); } h+=2; color="gray"; if (check(show,"couche2")){ jump (color,h,adc8,adc8.addy(10),adc8.movehole(3).addy(10),connect.pin(18,2).switchside().movehole(3),connect.pin(18,2)); jump (color,h,adc9,adc9.addy(10),adc9.movehole(4).addy(10),connect.pin(20,2).switchside().movehole(4),connect.pin(20,2)); } if (check(show,"alim")){ for (int i=0; i<10; i++){ int y = i*2+1; jump("red",0,connect.pin(y,5),connect.pin(y,5).to_vcc()); y++; resistor_ground(connect.pin(y,1),connect.pin_y(y),"darkgray",12000); } } CONNECTOR relay1(0,43,1,3,CONNECT_MALE,"relay1"); CONNECTOR relay2(1,43,3,3,CONNECT_MALE,"relay2"); if (check(show,"couche2")){ jump ("orange",6,espctl1.movehole(2),relay2.pin(1,2)); jump ("orange",6,espctl2.movehole(1),relay1.pin(1,5)); } if (check(show,"alim")){ jump ("red",1,esp5v.movehole(4),relay1.pin(2,4)); jump ("black",0,relay1.pin(3,1),relay1.pin(3,1).to_ground()); jump ("black",0,relay1.pin(3,5),relay2.pin(3,1)); jump ("red",0,relay1.pin(2,5),relay2.pin(2,1)); } }