Browse Source

update

master
zhaohe 1 year ago
parent
commit
ede49ce8ea
  1. 28
      usrc/protocol_impl/basic/fn_mgr.cpp
  2. 2
      usrc/protocol_impl/basic/fn_mgr.hpp
  3. 2
      zsdk

28
usrc/protocol_impl/basic/fn_mgr.cpp

@ -1,4 +1,28 @@
#include "fn_mgr.hpp"
void fn_map_reg(uint16_t function_id, protocol_impl_func_t funtion) {}
bool fn_map_process(uint16_t function_id, uint8_t from, uint8_t to, uint8_t* rawpacket, size_t len) { return true; }
typedef struct {
uint16_t function_id;
protocol_impl_func_t fn;
} fn_map_t;
fn_map_t fn_map[256];
int fn_map_size = 0;
void fn_map_reg(uint16_t function_id, protocol_impl_func_t fn) {
if (fn_map_size >= 256) {
printf("fn_map is full\n");
return;
}
fn_map[fn_map_size].function_id = function_id;
fn_map[fn_map_size].fn = fn;
fn_map_size++;
}
bool fn_map_process(uint16_t function_id, uint8_t from, uint8_t to, uint8_t* rawpacket, size_t len) {
for (int i = 0; i < fn_map_size; i++) {
if (fn_map[i].function_id == function_id) {
fn_map[i].fn(from, to, (zcanbus_packet_t*)rawpacket, len);
return true;
}
}
return false;
}

2
usrc/protocol_impl/basic/fn_mgr.hpp

@ -29,7 +29,7 @@
* FUNC *
***********************************************************************************************************************/
typedef void(protocol_impl_func_t)(uint8_t from, uint8_t to, zcanbus_packet_t* rawpacket, size_t len);
typedef void(*protocol_impl_func_t)(uint8_t from, uint8_t to, zcanbus_packet_t* rawpacket, size_t len);
void fn_map_reg(uint16_t function_id, protocol_impl_func_t funtion);
bool fn_map_process(uint16_t function_id, uint8_t from, uint8_t to, uint8_t* rawpacket, size_t len);

2
zsdk

@ -1 +1 @@
Subproject commit d1fa5248511a3d2ef1c85fbf8e4abac8eab63fc6
Subproject commit 450a91850484e1e575c352aaf63d393055db8238
Loading…
Cancel
Save