Revert "new node and FastLED"
This reverts commit 4730087f9e0407dac3795dfea3b10a3f22bc8b54.
This commit is contained in:
		
							parent
							
								
									f4ac188a96
								
							
						
					
					
						commit
						c7e9d40c91
					
				
							
								
								
									
										194
									
								
								src/CANNode.cpp
									
									
									
									
									
								
							
							
						
						
									
										194
									
								
								src/CANNode.cpp
									
									
									
									
									
								
							| @ -10,12 +10,11 @@ | |||||||
| #include <Metro.h> | #include <Metro.h> | ||||||
| #include <FlexCAN.h> | #include <FlexCAN.h> | ||||||
| #include <OneWire.h> | #include <OneWire.h> | ||||||
| #include <FastLED.h> |  | ||||||
| #include "CANNode.h" | #include "CANNode.h" | ||||||
| 
 | 
 | ||||||
| // For Node definition:
 | // For Node definition:
 | ||||||
| 
 | 
 | ||||||
| #include "Node_2_def.h" | #include "Node_3_def.h" | ||||||
| 
 | 
 | ||||||
| // Metro ticks in ms
 | // Metro ticks in ms
 | ||||||
| #define METRO_CAN_tick 1 | #define METRO_CAN_tick 1 | ||||||
| @ -53,12 +52,9 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| uint8_t led = ONBOARD_LED; | uint8_t led = LED; | ||||||
| uint8_t state; | uint8_t state; | ||||||
| uint8_t pin_state; | uint8_t pin_state; | ||||||
| uint8_t led_current_value; |  | ||||||
| uint8_t led_last_value; |  | ||||||
| int serial_in; |  | ||||||
| bool action[2]; | bool action[2]; | ||||||
| // Metro
 | // Metro
 | ||||||
| Metro METRO_CAN = Metro(METRO_CAN_tick); | Metro METRO_CAN = Metro(METRO_CAN_tick); | ||||||
| @ -75,8 +71,6 @@ OneWire OW_1(OW_pin); | |||||||
| 
 | 
 | ||||||
| telegram_comp_t mesg_comp; | telegram_comp_t mesg_comp; | ||||||
| 
 | 
 | ||||||
| // event info = { 1, 0x03, 0x01, OFF, 0x01};
 |  | ||||||
| 
 |  | ||||||
| static CAN_message_t txmsg,rxmsg; | static CAN_message_t txmsg,rxmsg; | ||||||
| static uint8_t hex[17] = "0123456789abcdef"; | static uint8_t hex[17] = "0123456789abcdef"; | ||||||
| 
 | 
 | ||||||
| @ -84,9 +78,6 @@ int txCount,rxCount; | |||||||
| unsigned int txTimer,rxTimer; | unsigned int txTimer,rxTimer; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| CRGB leds[NUM_LEDS]; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| // Functions ------------------------------^-------------------------
 | // Functions ------------------------------^-------------------------
 | ||||||
| void PrintBytes(uint8_t* addr, uint8_t count, bool newline=0) { | void PrintBytes(uint8_t* addr, uint8_t count, bool newline=0) { | ||||||
|   for (uint8_t i = 0; i < count; i++) { |   for (uint8_t i = 0; i < count; i++) { | ||||||
| @ -133,7 +124,7 @@ uint8_t toggle_Pin(uint8_t pin){ | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint32_t forgeid(event_t event){ | uint32_t forgeid(event_t event){ | ||||||
|   return (event.prio<<26)+(event.dst<<18)+(NODE_ID<<8)+event.cmd; |   return (event.prio<<26)+(event.dst<<16)+(NODE_ID<<8)+event.cmd; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| telegram_comp_t parse_CAN(CAN_message_t mesg){ | telegram_comp_t parse_CAN(CAN_message_t mesg){ | ||||||
| @ -165,94 +156,35 @@ void send_event (uint8_t trig_event){ | |||||||
|       txmsg.len = 0; |       txmsg.len = 0; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| void switch_leds (uint8_t value) { |  | ||||||
|   led_last_value = led_current_value; |  | ||||||
| //  FastLED.setTemperature( TEMP );
 |  | ||||||
| //  FastLED.setBrightness( BRIGHTNESS );
 |  | ||||||
|   memset8( leds, value, NUM_LEDS * sizeof(CRGB)); |  | ||||||
|   led_current_value = value; |  | ||||||
|   FastLED.show(); |  | ||||||
| } |  | ||||||
| void toggle_leds ( void ) { |  | ||||||
|   if ( led_current_value != 0) { |  | ||||||
|     switch_leds(0); |  | ||||||
|   } else { |  | ||||||
|     if ( led_current_value == led_last_value){ |  | ||||||
|       switch_leds(255); |  | ||||||
|     } else { |  | ||||||
|       switch_leds(led_last_value); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void take_action (action_type type, uint8_t tag ){ | void take_action (action_type type, uint8_t tag ){ | ||||||
| for (uint8_t i = 0; action_map[i].tag != 0 ; i++) { | for (uint8_t i = 0; action_map[i].tag != 0 ; i++) { | ||||||
|   if ( action_map[i].tag == tag ) { |   if ( action_map[i].tag == tag ) { | ||||||
|     switch ( type ) { |     switch ( type ) { | ||||||
|       case OFF: |       case OFF: | ||||||
|         switch ( outputs[action_map[i].outputs_idx].type ){ |         digitalWrite(outputs[action_map[i].outputs_idx].address,LOW ^ outputs[action_map[i].outputs_idx].invert); | ||||||
|           case GPIO: |  | ||||||
|             digitalWrite(outputs[action_map[i].outputs_idx].address,LOW ^ outputs[action_map[i].outputs_idx].invert); |  | ||||||
|             break; |  | ||||||
|           case LED: |  | ||||||
|             switch_leds(0); |  | ||||||
|             break; |  | ||||||
|           } |  | ||||||
|         Serial.print(F("Switching OFF Output: ")); |         Serial.print(F("Switching OFF Output: ")); | ||||||
|         Serial.println(action_map[i].outputs_idx); |         Serial.println(action_map[i].outputs_idx); | ||||||
|         break; |         break; | ||||||
|       case ON: |       case ON: | ||||||
|         switch ( outputs[action_map[i].outputs_idx].type ){ |  | ||||||
|           case GPIO: |  | ||||||
|             digitalWrite(outputs[action_map[i].outputs_idx].address,HIGH ^ outputs[action_map[i].outputs_idx].invert); |  | ||||||
|             break; |  | ||||||
|           case LED: |  | ||||||
|             switch_leds(255); |  | ||||||
|             break; |  | ||||||
|           } |  | ||||||
|         digitalWrite(outputs[action_map[i].outputs_idx].address, HIGH ^ outputs[action_map[i].outputs_idx].invert); |         digitalWrite(outputs[action_map[i].outputs_idx].address, HIGH ^ outputs[action_map[i].outputs_idx].invert); | ||||||
|         Serial.print(F("Switching ON Output: ")); |         Serial.print(F("Switching ON Output: ")); | ||||||
|         Serial.println(action_map[i].outputs_idx); |         Serial.println(action_map[i].outputs_idx); | ||||||
|         break; |         break; | ||||||
|       case TOGGLE: |       case TOGGLE: | ||||||
|  |         pin_state = toggle_Pin(outputs[action_map[i].outputs_idx].address); | ||||||
|         Serial.print(F("Toggeling Output: ")); |         Serial.print(F("Toggeling Output: ")); | ||||||
|         Serial.print(action_map[i].outputs_idx); |         Serial.print(action_map[i].outputs_idx); | ||||||
|         Serial.print(F(" to new state: ")); |         Serial.print(F(" to new state: ")); | ||||||
|         switch ( outputs[action_map[i].outputs_idx].type ){ |         Serial.println(pin_state ^ outputs[action_map[i].outputs_idx].invert); | ||||||
|           case GPIO: |  | ||||||
|             pin_state = toggle_Pin(outputs[action_map[i].outputs_idx].address); |  | ||||||
|             Serial.println(pin_state ^ outputs[action_map[i].outputs_idx].invert); |  | ||||||
|             break; |  | ||||||
|           case LED: |  | ||||||
|             toggle_leds(); |  | ||||||
|             Serial.println(led_current_value); |  | ||||||
|             break; |  | ||||||
|           } |  | ||||||
|         break; |         break; | ||||||
|       case VALUE: |       case VALUE: | ||||||
|         switch ( outputs[action_map[i].outputs_idx].type ){ |         Serial.println(F("TBD")); | ||||||
|           case GPIO: |  | ||||||
|             if (VALUE == 0) { |  | ||||||
|               digitalWrite(outputs[action_map[i].outputs_idx].address,LOW ^ outputs[action_map[i].outputs_idx].invert); |  | ||||||
|             } else { |  | ||||||
|               digitalWrite(outputs[action_map[i].outputs_idx].address, HIGH ^ outputs[action_map[i].outputs_idx].invert); |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|           case LED: |  | ||||||
|             switch_leds(VALUE); |  | ||||||
|             break; |  | ||||||
|           } |  | ||||||
|         Serial.print(F("Setting Output: ")); |  | ||||||
|         Serial.print(action_map[i].outputs_idx); |  | ||||||
|         Serial.print(F(" to value: ")); |  | ||||||
|         Serial.println(VALUE); |  | ||||||
|         break; |         break; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| // -------------------------------------------------------------
 | // -------------------------------------------------------------
 | ||||||
| void setup(void) | void setup(void) | ||||||
| { | { | ||||||
| @ -268,11 +200,6 @@ void setup(void) | |||||||
|   CANbus.begin(); |   CANbus.begin(); | ||||||
|   txmsg.ext = 1; |   txmsg.ext = 1; | ||||||
|   txmsg.timeout = 100; |   txmsg.timeout = 100; | ||||||
|   // FastLED
 |  | ||||||
|   //delay(3000); // sanity delay
 |  | ||||||
|   FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); |  | ||||||
|   FastLED.setBrightness( BRIGHTNESS ); |  | ||||||
|   FastLED.setTemperature( TEMP ); |  | ||||||
| 
 | 
 | ||||||
|   // outputs
 |   // outputs
 | ||||||
|   for (size_t i = 0; outputs[i].type != NOP; i++) { |   for (size_t i = 0; outputs[i].type != NOP; i++) { | ||||||
| @ -394,71 +321,52 @@ void loop(void) | |||||||
|       --rxTimer; |       --rxTimer; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   while ( CANbus.read(rxmsg) ) { |     while ( CANbus.read(rxmsg) ) { | ||||||
|     //hexDump( sizeof(rxmsg), (uint8_t *)&rxmsg );
 |       //hexDump( sizeof(rxmsg), (uint8_t *)&rxmsg );
 | ||||||
|     DEBUG_WRITE(rxmsg.buf[0]); |       DEBUG_WRITE(rxmsg.buf[0]); | ||||||
|     rxCount++; |       rxCount++; | ||||||
|       Serial.print("GOT="); |         Serial.print("GOT="); | ||||||
|       Serial.print(rxmsg.id,HEX); |         Serial.print(rxmsg.id,HEX); | ||||||
|       for (uint8_t i=0; i<rxmsg.len; i++){ |         for (uint8_t i=0; i<rxmsg.len; i++){ | ||||||
|         Serial.print(":"); |           Serial.print(":"); | ||||||
|         Serial.print(rxmsg.buf[i],HEX); |           Serial.print(rxmsg.buf[i],HEX); | ||||||
|       } |         } | ||||||
|       Serial.println(); |         Serial.println(); | ||||||
|       mesg_comp= parse_CAN(rxmsg); |         mesg_comp= parse_CAN(rxmsg); | ||||||
|       if (mesg_comp.dst == 0xFF || mesg_comp.dst == NODE_ID ) { |         if (mesg_comp.dst == 0xFF || mesg_comp.dst == NODE_ID ) { | ||||||
| 
 | 
 | ||||||
|       switch (mesg_comp.cmd) { |         switch (mesg_comp.cmd) { | ||||||
|         // OFF
 |           // OFF
 | ||||||
|         case 0x00 : |           case 0x00 : | ||||||
|           take_action(OFF, mesg_comp.buf[0]); |             take_action(OFF, mesg_comp.buf[0]); | ||||||
|         break; |           break; | ||||||
|         // ON
 |           // ON
 | ||||||
|         case 0x01 : |           case 0x01 : | ||||||
|           take_action(ON, mesg_comp.buf[0]); |             take_action(ON, mesg_comp.buf[0]); | ||||||
|         break; |           break; | ||||||
|         // VALUE
 |           // VALUE
 | ||||||
|         case 0x02 : |           case 0x02 : | ||||||
|         break; |           break; | ||||||
|         // TOGGLE
 |           // TOGGLE
 | ||||||
|         case 0x03: |           case 0x03: | ||||||
|           take_action(TOGGLE, mesg_comp.buf[0]); |             take_action(TOGGLE, mesg_comp.buf[0]); | ||||||
|         break; |           break; | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|  |       rxCount = 0; | ||||||
|     } |     } | ||||||
|     rxCount = 0; |     txTimer = 100;//milliseconds
 | ||||||
|   } |     if (txmsg.len != 0){ | ||||||
|   txTimer = 100;//milliseconds
 |       Serial.print("PUT="); | ||||||
|   if (txmsg.len != 0){ |       Serial.print(txmsg.id,HEX); | ||||||
|     Serial.print("PUT="); |         for (uint8_t i=0; i<txmsg.len; i++){ | ||||||
|     Serial.print(txmsg.id,HEX); |           Serial.print(":"); | ||||||
|       for (uint8_t i=0; i<txmsg.len; i++){ |           Serial.print(txmsg.buf[i],HEX); | ||||||
|         Serial.print(":"); |         } | ||||||
|         Serial.print(txmsg.buf[i],HEX); |         Serial.print("\n"); | ||||||
|       } |       CANbus.write(txmsg); | ||||||
|       Serial.print("\n"); |       txmsg.buf[0]++; | ||||||
|     CANbus.write(txmsg); |       txmsg.len = 0; | ||||||
|     txmsg.buf[0]++; |  | ||||||
|     txmsg.len = 0; |  | ||||||
|   } |  | ||||||
|   if (Serial.available() > 0) { |  | ||||||
|     // read the incoming byte:
 |  | ||||||
|     serial_in = Serial.read(); |  | ||||||
|     switch (serial_in) { |  | ||||||
|       case 0x31 : take_action(TOGGLE, 1); break; |  | ||||||
|       case 0x32 : take_action(TOGGLE, 2); break; |  | ||||||
|       case 0x33 : take_action(TOGGLE, 3); break; |  | ||||||
|       case 0x34 : take_action(TOGGLE, 4); break; |  | ||||||
|       case 0x35 : take_action(TOGGLE, 5); break; |  | ||||||
|       case 0x36 : take_action(TOGGLE, 6); break; |  | ||||||
|       case 0x37 : take_action(TOGGLE, 7); break; |  | ||||||
|       case 0x38 : take_action(TOGGLE, 8); break; |  | ||||||
|       case 0x39 : take_action(TOGGLE, 10); break; |  | ||||||
| //      case 0x38 : digitalWrite(13, 1); break;
 |  | ||||||
| //      case 0x39 : digitalWrite(13, 0); break;
 |  | ||||||
|     } |     } | ||||||
|     // say what you got:
 | 
 | ||||||
|     Serial.print("I received: "); |  | ||||||
|     Serial.println(serial_in, HEX); |  | ||||||
|   } |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,14 +1,13 @@ | |||||||
| #include <Arduino.h> | #include <Arduino.h> | ||||||
| #ifndef CANNODE_TYPES | #ifndef CANNODE_TYPES | ||||||
| #define CANNODE_TYPES | #define CANNODE_TYPES | ||||||
| enum out_type { GPIO, PWM, OW, I2C, SPI, LED, DMX, NOP }; | enum out_type { GPIO, PWM, OW, I2C, SPI, WS2811, DMX, NOP }; | ||||||
| enum event_type { LOCAL, SEND}; | enum event_type { LOCAL, SEND}; | ||||||
| 
 | 
 | ||||||
| enum action_type { OFF, ON, VALUE, TOGGLE }; | enum action_type { OFF, ON, VALUE, TOGGLE }; | ||||||
| enum telegram_type { ALERT, EVENT, NOTIFY, INFO }; | enum telegram_type { ALERT, EVENT, NOTIFY, INFO }; | ||||||
| 
 | 
 | ||||||
| typedef struct CAN_telegram_t { | typedef struct CAN_telegram_t { | ||||||
|   // 3bit prio -
 |  | ||||||
|   uint32_t id; |   uint32_t id; | ||||||
|   uint8_t length; |   uint8_t length; | ||||||
|   uint8_t buf[8]; |   uint8_t buf[8]; | ||||||
|  | |||||||
| @ -10,16 +10,16 @@ | |||||||
| #define N_ACTIONS 64 | #define N_ACTIONS 64 | ||||||
| 
 | 
 | ||||||
| #define DEBUG 0										// 1 for noisy serial
 | #define DEBUG 0										// 1 for noisy serial
 | ||||||
| #define ONBOARD_LED 13 | #define LED 13 | ||||||
| 
 | 
 | ||||||
| #define LED_PIN     20 | #define RELAY1 0 | ||||||
| #define COLOR_ORDER GRB | #define RELAY2 1 | ||||||
| #define CHIPSET     WS2812 | #define RELAY3 23 | ||||||
| #define NUM_LEDS    4 | #define RELAY4 22 | ||||||
| 
 | #define RELAY5 17 | ||||||
| #define BRIGHTNESS  255 | #define RELAY6 16 | ||||||
| //#define TEMP Tungsten100W
 | #define RELAY7 9 | ||||||
| #define TEMP Candle | #define RELAY8 10 | ||||||
| 
 | 
 | ||||||
| // OneWire
 | // OneWire
 | ||||||
| #define OW_pin 14 | #define OW_pin 14 | ||||||
| @ -45,10 +45,9 @@ static outputs_t outputs[N_OUTPUTS] PROGMEM={ | |||||||
|   { GPIO, 22, 0, true },  	// 3
 |   { GPIO, 22, 0, true },  	// 3
 | ||||||
|   { GPIO, 17, 0, true },  	// 4
 |   { GPIO, 17, 0, true },  	// 4
 | ||||||
|   { GPIO, 16, 0, true },  	// 5
 |   { GPIO, 16, 0, true },  	// 5
 | ||||||
|   { GPIO, 19,  255, true },   	// 6
 |   { GPIO, 9,  255, true },   	// 6
 | ||||||
|   { GPIO, 18, 0, true },  	// 7
 |   { GPIO, 10, 0, true },  	// 7
 | ||||||
|   { LED, 21, 0, false },  	// 8
 |   { NOP, 0xFF, 0, 0 } | ||||||
|   { NOP, 0xFF, 0, 0 }, |  | ||||||
| }; | }; | ||||||
| static uint8_t outputs_state[N_OUTPUTS]; | static uint8_t outputs_state[N_OUTPUTS]; | ||||||
| //  ID:
 | //  ID:
 | ||||||
| @ -100,7 +99,6 @@ static action_t action_map[N_ACTIONS] PROGMEM={ | |||||||
|   {7, 6}, |   {7, 6}, | ||||||
|   {8, 7}, |   {8, 7}, | ||||||
|   {9, 0},{9, 1},{9, 2},{9, 3},{9, 4},{9, 5},{9, 6},{9, 7}, |   {9, 0},{9, 1},{9, 2},{9, 3},{9, 4},{9, 5},{9, 6},{9, 7}, | ||||||
|   {10, 8}, |  | ||||||
|   {210, 210}, |   {210, 210}, | ||||||
|   {211, 211}, |   {211, 211}, | ||||||
|   {220, 220}, |   {220, 220}, | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
|  | #include "CANNode.h" | ||||||
| // Configuration
 | // Configuration
 | ||||||
| #define NODE_ID 0x03 | #define NODE_ID 0x03 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user