mirror of
				https://github.com/Show-maket/IR-protocol.git
				synced 2025-10-29 18:12:36 +00:00 
			
		
		
		
	calculateSendTime (need to fix)
This commit is contained in:
		
							
								
								
									
										39
									
								
								IR_Encoder.h
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								IR_Encoder.h
									
									
									
									
									
								
							| @ -3,6 +3,15 @@ | ||||
|  | ||||
| // TODO: Отложенная передача после завершения приема | ||||
|  | ||||
| // Структура для возврата результата отправки | ||||
| struct IR_SendResult { | ||||
|     bool success;           // Флаг успешности отправки | ||||
|     uint32_t sendTimeMs;    // Время отправки пакета в миллисекундах | ||||
|      | ||||
|     IR_SendResult(bool success = false, uint32_t sendTimeMs = 0)  | ||||
|         : success(success), sendTimeMs(sendTimeMs) {} | ||||
| }; | ||||
|  | ||||
| class IR_DecoderRaw; | ||||
| class IR_Encoder : public IR_FOX | ||||
| { | ||||
| @ -30,17 +39,27 @@ public: | ||||
|     void setBlindDecoders(IR_DecoderRaw *decoders[], uint8_t count); | ||||
|     void rawSend(uint8_t *ptr, uint8_t len); | ||||
|  | ||||
|     void sendData(uint16_t addrTo, uint8_t dataByte, bool needAccept = false); | ||||
|     void sendData(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false); | ||||
|     void sendDataFULL(uint16_t addrFrom, uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false); | ||||
|     IR_SendResult sendData(uint16_t addrTo, uint8_t dataByte, bool needAccept = false); | ||||
|     IR_SendResult sendData(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false); | ||||
|     IR_SendResult sendDataFULL(uint16_t addrFrom, uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false); | ||||
|  | ||||
|  | ||||
|     void sendAccept(uint16_t addrTo, uint8_t customByte = 0); | ||||
|     void sendRequest(uint16_t addrTo); | ||||
|     IR_SendResult sendAccept(uint16_t addrTo, uint8_t customByte = 0); | ||||
|     IR_SendResult sendRequest(uint16_t addrTo); | ||||
|  | ||||
|     void sendBack(uint8_t data); | ||||
|     void sendBack(uint8_t *data = nullptr, uint8_t len = 0); | ||||
|     void sendBackTo(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0); | ||||
|     IR_SendResult sendBack(uint8_t data); | ||||
|     IR_SendResult sendBack(uint8_t *data = nullptr, uint8_t len = 0); | ||||
|     IR_SendResult sendBackTo(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0); | ||||
|  | ||||
|     // Функция для тестирования времени отправки без фактической отправки | ||||
|     uint32_t testSendTime(uint16_t addrTo, uint8_t dataByte, bool needAccept = false) const; | ||||
|     uint32_t testSendTime(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false) const; | ||||
|     uint32_t testSendTimeFULL(uint16_t addrFrom, uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false) const; | ||||
|     uint32_t testSendAccept(uint16_t addrTo, uint8_t customByte = 0) const; | ||||
|     uint32_t testSendRequest(uint16_t addrTo) const; | ||||
|     uint32_t testSendBack(uint8_t data) const; | ||||
|     uint32_t testSendBack(uint8_t *data = nullptr, uint8_t len = 0) const; | ||||
|     uint32_t testSendBackTo(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0) const; | ||||
|  | ||||
|     inline bool isBusy() const { return isSending;} | ||||
|  | ||||
| @ -50,11 +69,13 @@ public: | ||||
|  | ||||
|     void _isr(); | ||||
| private: | ||||
|     void _sendBack(bool isAdressed, uint16_t addrTo, uint8_t *data, uint8_t len); | ||||
|     IR_SendResult _sendBack(bool isAdressed, uint16_t addrTo, uint8_t *data, uint8_t len); | ||||
|  | ||||
|     void setDecoder_isSending(); | ||||
|     void sendByte(uint8_t byte, bool *prev, bool LOW_FIRST); | ||||
|     void addSync(bool *prev, bool *next); | ||||
|     uint32_t calculateSendTime(uint8_t packSize) const; | ||||
|     uint32_t testSendBack(bool isAdressed, uint16_t addrTo, uint8_t *data, uint8_t len) const; | ||||
|     void send_HIGH(bool = 1); | ||||
|     void send_LOW(); | ||||
|     void send_EMPTY(uint8_t count); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user