mirror of
				https://github.com/Show-maket/IR-protocol.git
				synced 2025-10-30 10:32:35 +00:00 
			
		
		
		
	non virtual
This commit is contained in:
		
							
								
								
									
										81
									
								
								IR_config.h
									
									
									
									
									
								
							
							
						
						
									
										81
									
								
								IR_config.h
									
									
									
									
									
								
							| @ -48,55 +48,55 @@ msg type: | ||||
| #define IR_MSG_                      5U //  | 101..... | = ?? | ||||
| #define IR_MSG_DATA_NOACCEPT         6U //  | 110..... | = данные, не требующие подтверждения | ||||
| #define IR_MSG_DATA_ACCEPT           7U //  | 111..... | = данные требующие подтверждения | ||||
|                                         /*                                      //   ---------- | ||||
| ;/*                                     //   ---------- | ||||
|  | ||||
|                                         /```````````````````` подтверждение ```````````````````\      /``````````````````````````````````````` запрос ``````````````````````````````````\ | ||||
|                                                                                                                                                                | ||||
|                                         {``````````} [````````````````````````] [``````````````]      {``````````} [````````````````````````] [````````````````````````] [``````````````] | ||||
|                                         { msg type } [   addr_from uint16_t   ] [   CRC Bytes  ]      { msg type } [   addr_from uint16_t   ] [    addr_to uint16_t    ] [   CRC Bytes  ] | ||||
|                                         {..........} [........................] [..............]      {..........} [........................] [........................] [..............] | ||||
|                                                                                                                                                                                           | ||||
|                                         { 001..... } [addr_from_H][addr_from_L] [ crc1 ][ crc2 ]      { 010..... } [addr_from_H][addr_from_L] [addr_from_H][addr_from_L] [ crc1 ][ crc2 ] | ||||
|                                         |     0            1           2           3       4          |     0            1           2              3           4           5       6     | ||||
|                                         \__________________________________________/       |          \_____________________________________________________________________/       |     | ||||
|                                         |                                                  |          |                                                                             |     | ||||
|                                         \__________________________________________________/          \_____________________________________________________________________________/     | ||||
| /```````````````````` подтверждение ```````````````````\      /``````````````````````````````````````` запрос ``````````````````````````````````\ | ||||
|                                                                                                                        | ||||
| {``````````} [````````````````````````] [``````````````]      {``````````} [````````````````````````] [````````````````````````] [``````````````] | ||||
| { msg type } [   addr_from uint16_t   ] [   CRC Bytes  ]      { msg type } [   addr_from uint16_t   ] [    addr_to uint16_t    ] [   CRC Bytes  ] | ||||
| {..........} [........................] [..............]      {..........} [........................] [........................] [..............] | ||||
|                                                                                                                                                   | ||||
| { 001..... } [addr_from_H][addr_from_L] [ crc1 ][ crc2 ]      { 010..... } [addr_from_H][addr_from_L] [addr_from_H][addr_from_L] [ crc1 ][ crc2 ] | ||||
| |     0            1           2           3       4          |     0            1           2              3           4           5       6     | ||||
| \__________________________________________/       |          \_____________________________________________________________________/       |     | ||||
| |                                                  |          |                                                                             |     | ||||
| \__________________________________________________/          \_____________________________________________________________________________/     | ||||
|  | ||||
|  | ||||
|  | ||||
|                                         /`````````````````````` Задний сигнал машинки без адресации ``````````````````````\        В (IR_MASK_MSG_INFO & 15U) содержится количество байт | ||||
|                                                                                                                                    сквозных команд, максимум 15 | ||||
|                                         {``````````} [````````````````````````] [````````````````````````] [``````````````]        Если полезных байт информации нет, отправляется один | ||||
|                                         { msg type } [   addr_from uint16_t   ] [====== data bytes ======] [   CRC Bytes  ]        байт нулей | ||||
|                                         {..........} [........................] [........................] [..............]         | ||||
|                                                                                                                                     | ||||
|                                         { 0000xxxx } [addr_from_H][addr_from_L] [data_H][data_n..][data_L] [ crc1 ][ crc2 ]         | ||||
|                                         |     0           1            2            3                         |       |             | ||||
|                                         \_____________________________________________________________________/       |             | ||||
|                                         |                                                                             |             | ||||
|                                         \_____________________________________________________________________________/             | ||||
| /`````````````````````` Задний сигнал машинки без адресации ``````````````````````\        В (IR_MASK_MSG_INFO & 15U) содержится количество байт | ||||
|                                                                                            сквозных команд, максимум 15 | ||||
| {``````````} [````````````````````````] [````````````````````````] [``````````````]        Если полезных байт информации нет, отправляется один | ||||
| { msg type } [   addr_from uint16_t   ] [====== data bytes ======] [   CRC Bytes  ]        байт нулей | ||||
| {..........} [........................] [........................] [..............]         | ||||
|                                                                                             | ||||
| { 0000xxxx } [addr_from_H][addr_from_L] [data_H][data_n..][data_L] [ crc1 ][ crc2 ]         | ||||
| |     0           1            2            3                         |       |             | ||||
| \_____________________________________________________________________/       |             | ||||
| |                                                                             |             | ||||
| \_____________________________________________________________________________/             | ||||
|  | ||||
|  | ||||
|  | ||||
|                                         /```````````````````````````````````` Задний сигнал машинки с адресацией ````````````````````````````````````\  | ||||
|                                                                                                                              | ||||
|                                         {``````````} [````````````````````````] [````````````````````````] [````````````````````````] [``````````````]  | ||||
|                                         { msg type } [   addr_from uint16_t   ] [    addr_to uint16_t    ] [====== data bytes ======] [   CRC Bytes  ]  | ||||
|                                         {..........} [........................] [........................] [........................] [..............]  | ||||
|                                                                                                                                                         | ||||
|                                         { 0001xxxx } [addr_from_H][addr_from_L] [addr_from_H][addr_from_L] [data_H][data_n..][data_L] [ crc1 ][ crc2 ]  | ||||
|                                         |     0           1            2              3           4            5                         |       |      | ||||
|                                         \________________________________________________________________________________________________/       |      | ||||
|                                         |                                                                                                        |      | ||||
|                                         \________________________________________________________________________________________________________/      | ||||
| /```````````````````````````````````` Задний сигнал машинки с адресацией ````````````````````````````````````\  | ||||
|                                                                                      | ||||
| {``````````} [````````````````````````] [````````````````````````] [````````````````````````] [``````````````]  | ||||
| { msg type } [   addr_from uint16_t   ] [    addr_to uint16_t    ] [====== data bytes ======] [   CRC Bytes  ]  | ||||
| {..........} [........................] [........................] [........................] [..............]  | ||||
|                                                                                                                 | ||||
| { 0001xxxx } [addr_from_H][addr_from_L] [addr_from_H][addr_from_L] [data_H][data_n..][data_L] [ crc1 ][ crc2 ]  | ||||
| |     0           1            2              3           4            5                         |       |      | ||||
| \________________________________________________________________________________________________/       |      | ||||
| |                                                                                                        |      | ||||
| \________________________________________________________________________________________________________/      | ||||
|  | ||||
|                                         */ | ||||
| */ | ||||
|  | ||||
| #define IR_MASK_MSG_TYPE 0b00000111 | ||||
| #define IR_MASK_MSG_INFO 0b00011111 | ||||
|  | ||||
|                                         /* | ||||
|                                         /////////////////////////////////////////////////////////////////////////////////////*/ | ||||
| /* | ||||
| /////////////////////////////////////////////////////////////////////////////////////*/ | ||||
| typedef uint16_t crc_t; | ||||
|  | ||||
| #define bytePerPack 16                              // колличество байтов в пакете | ||||
| @ -167,16 +167,15 @@ public: | ||||
|         uint16_t rTime = 0; | ||||
|     }; | ||||
|  | ||||
| protected: | ||||
|     ErrorsStruct errors; | ||||
|  | ||||
|     void checkaddressRuleApply(uint16_t address, uint16_t id, bool& flag) { | ||||
|     static void checkaddressRuleApply(uint16_t address, uint16_t id, bool& flag) { | ||||
|         flag = false; | ||||
|         flag |= id == 0; | ||||
|         flag |= address == id; | ||||
|         flag |= address >= IR_Broadcast; | ||||
|     } | ||||
|  | ||||
| protected: | ||||
|     ErrorsStruct errors; | ||||
|     uint8_t crc8(uint8_t* data, uint8_t start, uint8_t end, uint8_t poly) { //TODO: сделать возможность межбайтовой проверки | ||||
|         uint8_t crc = 0xff; | ||||
|         size_t i, j; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user