mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01:00 
			
		
		
		
	add print, println for linux fix compile error on linux
This commit is contained in:
		
							parent
							
								
									96f8a1bffb
								
							
						
					
					
						commit
						4dffda5574
					
				
							
								
								
									
										179
									
								
								bits.cpp
									
									
									
									
									
								
							
							
						
						
									
										179
									
								
								bits.cpp
									
									
									
									
									
								
							| @ -73,3 +73,182 @@ uint32_t getInt(uint8_t * data) | ||||
| { | ||||
|     return (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3]; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #ifdef __linux__ | ||||
| 
 | ||||
| void print(const char* s) | ||||
| { | ||||
|     printf("%s", s); | ||||
| } | ||||
| void print(char c) | ||||
| { | ||||
|     printf("%c", c); | ||||
| } | ||||
| 
 | ||||
| void print(unsigned char num) | ||||
| { | ||||
|     print(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void print(unsigned char num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%X", num); | ||||
|     else | ||||
|         printf("%d", num); | ||||
| } | ||||
| 
 | ||||
| void print(int num) | ||||
| { | ||||
|     print(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void print(int num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%X", num); | ||||
|     else | ||||
|         printf("%d", num); | ||||
| } | ||||
| 
 | ||||
| void print(unsigned int num) | ||||
| { | ||||
|     print(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void print(unsigned int num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%X", num); | ||||
|     else | ||||
|         printf("%d", num); | ||||
| } | ||||
| 
 | ||||
| void print(long num) | ||||
| { | ||||
|     print(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void print(long num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%lX", num); | ||||
|     else | ||||
|         printf("%ld", num); | ||||
| } | ||||
| 
 | ||||
| void print(unsigned long num) | ||||
| { | ||||
|     print(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void print(unsigned long num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%lX", num); | ||||
|     else | ||||
|         printf("%ld", num); | ||||
| } | ||||
| 
 | ||||
| void print(double num) | ||||
| { | ||||
|     printf("%f", num); | ||||
| } | ||||
| 
 | ||||
| void println(const char* s) | ||||
| { | ||||
|     printf("%s\n", s); | ||||
| } | ||||
| void println(char c) | ||||
| { | ||||
|     printf("%c\n", c); | ||||
| } | ||||
| 
 | ||||
| void println(unsigned char num) | ||||
| { | ||||
|     println(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void println(unsigned char num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%X\n", num); | ||||
|     else | ||||
|         printf("%d\n", num); | ||||
| } | ||||
| 
 | ||||
| void println(int num) | ||||
| { | ||||
|     println(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void println(int num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%X\n", num); | ||||
|     else | ||||
|         printf("%d\n", num); | ||||
| } | ||||
| 
 | ||||
| void println(unsigned int num) | ||||
| { | ||||
|     println(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void println(unsigned int num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%X\n", num); | ||||
|     else | ||||
|         printf("%d\n", num); | ||||
| } | ||||
| 
 | ||||
| void println(long num) | ||||
| { | ||||
|     println(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void println(long num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%lX\n", num); | ||||
|     else | ||||
|         printf("%ld\n", num); | ||||
| } | ||||
| 
 | ||||
| void println(unsigned long num) | ||||
| { | ||||
|     println(num, DEC); | ||||
| } | ||||
| 
 | ||||
| void println(unsigned long num, int base) | ||||
| { | ||||
|     if (base == HEX) | ||||
|         printf("%lX\n", num); | ||||
|     else | ||||
|         printf("%ld\n", num); | ||||
| } | ||||
| 
 | ||||
| void println(double num) | ||||
| { | ||||
|     printf("%f\n", num); | ||||
| } | ||||
| 
 | ||||
| void println(void) | ||||
| { | ||||
|     printf("\n"); | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| void printHex(const char* suffix, const uint8_t *data, size_t length) | ||||
| { | ||||
|     _print(suffix); | ||||
|     for (size_t i = 0; i < length; i++) { | ||||
|         if (data[i] < 0x10) { _print("0"); } | ||||
|         _print(data[i], HEX); | ||||
|         _print(" "); | ||||
|     } | ||||
|     _print("\n"); | ||||
| } | ||||
							
								
								
									
										30
									
								
								bits.h
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								bits.h
									
									
									
									
									
								
							| @ -4,9 +4,37 @@ | ||||
| 
 | ||||
| #ifdef __linux__ | ||||
| #include <arpa/inet.h> | ||||
| #include <cstdio> | ||||
| 
 | ||||
| #define lowByte(val) ((val) & 255) | ||||
| #define highByte(val) (((val) >> ((sizeof(val) - 1) << 3)) & 255) | ||||
| #define bitRead(val, bitno) (((val) >> (bitno)) & 1) | ||||
| 
 | ||||
| #define DEC 10 | ||||
| #define HEX 16 | ||||
| 
 | ||||
| #define _print print | ||||
| #define _println println | ||||
| 
 | ||||
| void print(const char[]); | ||||
| void print(char); | ||||
| void print(unsigned char, int = DEC); | ||||
| void print(int, int = DEC); | ||||
| void print(unsigned int, int = DEC); | ||||
| void print(long, int = DEC); | ||||
| void print(unsigned long, int = DEC); | ||||
| void print(double, int = 2); | ||||
| 
 | ||||
| void println(const char[]); | ||||
| void println(char); | ||||
| void println(unsigned char, int = DEC); | ||||
| void println(int, int = DEC); | ||||
| void println(unsigned int, int = DEC); | ||||
| void println(long, int = DEC); | ||||
| void println(unsigned long, int = DEC); | ||||
| void println(double, int = 2); | ||||
| void println(void); | ||||
| 
 | ||||
| #elif ARDUINO_ARCH_SAMD | ||||
| #include <Arduino.h> | ||||
| #define htons(x) ( ((x)<<8) | (((x)>>8)&0xFF) ) | ||||
| @ -24,7 +52,7 @@ | ||||
| #define printf Serial.printf | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| void printHex(const char* suffix, const uint8_t *data, size_t length); | ||||
| 
 | ||||
| uint8_t* popByte(uint8_t& b, uint8_t* data); | ||||
| uint8_t* popWord(uint16_t& w, uint8_t* data); | ||||
|  | ||||
| @ -76,7 +76,7 @@ bool DataLinkLayer::sendTelegram(NPDU & npdu, AckType ack, uint16_t destinationA | ||||
| 
 | ||||
|     if (!frame.valid()) | ||||
|     { | ||||
|         _println("invalid frame\n"); | ||||
|         _println("invalid frame"); | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										14
									
								
								platform.h
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								platform.h
									
									
									
									
									
								
							| @ -22,13 +22,13 @@ public: | ||||
|     virtual bool sendBytes(uint8_t* buffer, uint16_t len) = 0; | ||||
|     virtual int readBytes(uint8_t* buffer, uint16_t maxLen) = 0; | ||||
|      | ||||
|     virtual void setupUart(); | ||||
|     virtual void closeUart(); | ||||
|     virtual int uartAvailable(); | ||||
|     virtual size_t writeUart(const uint8_t data); | ||||
|     virtual size_t writeUart(const uint8_t *buffer, size_t size); | ||||
|     virtual int readUart(); | ||||
|     virtual size_t readBytesUart(uint8_t *buffer, size_t length); | ||||
|     virtual void setupUart() = 0; | ||||
|     virtual void closeUart() = 0; | ||||
|     virtual int uartAvailable() = 0; | ||||
|     virtual size_t writeUart(const uint8_t data) = 0; | ||||
|     virtual size_t writeUart(const uint8_t *buffer, size_t size) = 0; | ||||
|     virtual int readUart() = 0; | ||||
|     virtual size_t readBytesUart(uint8_t *buffer, size_t length) = 0; | ||||
|          | ||||
|     virtual uint8_t* getEepromBuffer(uint16_t size) = 0; | ||||
|     virtual void commitToEeprom() = 0; | ||||
|  | ||||
| @ -212,8 +212,8 @@ bool TpUartDataLinkLayer::checkDataInd(uint8_t firstByte) | ||||
|     printHex("=>", buffer, len); | ||||
|     CemiFrame frame(buffer, len); | ||||
|      | ||||
|     if (frame.addressType() == InduvidualAddress &&  _deviceObject.induvidualAddress() == frame.destinationAddress() | ||||
|         || frame.addressType() == GroupAddress &&  _groupAddressTable.contains(frame.destinationAddress())) | ||||
|     if ((frame.addressType() == InduvidualAddress &&  _deviceObject.induvidualAddress() == frame.destinationAddress()) | ||||
|         || (frame.addressType() == GroupAddress &&  _groupAddressTable.contains(frame.destinationAddress()))) | ||||
|     { | ||||
|         //send ack. 
 | ||||
|         _platform.writeUart(U_ACK_REQ + 1); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user