sago35 / go-erpcgen

Generate Go / TinyGo code using eRPC idl as input
2 stars 1 forks source link

Add support for array of uint8 #2

Closed sago35 closed 5 months ago

sago35 commented 1 year ago

There are several array variables in the API arguments. ex) rpc_wifi_get_mac_address(out uint8[18] mac) -> int32

This PR adds handling for those arguments.

rpc_le_bond_delete_by_bd(in uint8[6] bd_addr, RPC_T_GAP_REMOTE_ADDR_TYPE bd_type) -> RPC_T_GAP_CAUSE
rpc_le_modify_white_list(RPC_T_GAP_WHITE_LIST_OP operation, in uint8[6] bd_addr, RPC_T_GAP_REMOTE_ADDR_TYPE bd_type) -> RPC_T_GAP_CAUSE
rpc_le_gen_rand_addr(RPC_T_GAP_RAND_ADDR_TYPE rand_addr_type, out uint8[6] random_bd) -> RPC_T_GAP_CAUSE
rpc_le_set_rand_addr(in uint8[6] random_bd) -> RPC_T_GAP_CAUSE
rpc_le_cfg_local_identity_address(in uint8[6] addr, RPC_T_GAP_IDENT_ADDR_TYPE ident_addr_type) -> RPC_T_GAP_CAUSE
rpc_le_scan_info_filter(bool enable, uint8 offset, uint8 len, in uint8[31] p_filter) -> bool
rpc_le_get_conn_addr(uint8 conn_id, out uint8[6] bd_addr, out uint8 bd_type) -> bool
rpc_le_get_conn_id(in uint8[6] bd_addr, uint8 bd_type, out uint8 p_conn_id) -> bool
rpc_le_connect(uint8 init_phys, in uint8[6] remote_bd,  RPC_T_GAP_REMOTE_ADDR_TYPE remote_bd_type, RPC_T_GAP_LOCAL_ADDR_TYPE local_bd_type, uint16 scan_timeout) -> RPC_T_GAP_CAUSE
rpc_le_find_key_entry(in uint8[6] bd_addr, RPC_T_GAP_REMOTE_ADDR_TYPE bd_type) ->  @nullable RPC_T_LE_KEY_ENTRY 
rpc_le_set_high_priority_bond(in uint8[6] bd_addr,  RPC_T_GAP_REMOTE_ADDR_TYPE bd_type) -> bool
rpc_le_resolve_random_address(in uint8[6] unresolved_addr, inout uint8[6] resolved_addr, inout RPC_T_GAP_IDENT_ADDR_TYPE resolved_addr_type) -> bool
rpc_le_gen_bond_dev(in uint8[6] bd_addr, RPC_T_GAP_REMOTE_ADDR_TYPE bd_type, RPC_T_GAP_LOCAL_ADDR_TYPE local_bd_type, in binary local_ltk, RPC_T_LE_KEY_TYPE key_type, RPC_T_LE_CCCD p_cccd) -> bool
rpc_client_by_uuid128_srv_discovery(uint8 conn_id, uint8 client_id,in uint8[16] p_uuid128)  -> RPC_T_GAP_CAUSE
rpc_client_by_uuid128_char_discovery(uint8 conn_id, uint8 client_id, uint16 start_handle, uint16 end_handle, uint8[16] p_uuid128)  -> RPC_T_GAP_CAUSE
rpc_client_attr_read_using_uuid(uint8 conn_id, uint8 client_id, uint16 start_handle, uint16 end_handle, uint16 uuid16, uint8[16] p_uuid128)  -> RPC_T_GAP_CAUSE
rpc_ble_create_service(uint8[16] uuid, uint8 uuid_length, bool is_primary) -> uint8
rpc_ble_create_char(uint8 app_id, uint8[16] uuid, uint8 uuid_length, uint8 properties, uint32 permissions) -> uint16
rpc_ble_create_desc(uint8 app_id, uint16 char_handle, uint8[16] uuid, uint8 uuid_length, uint8 flags, uint32 permissions, uint16 value_length, in binary p_value @retain @nullable) -> uint16
rpc_wifi_get_mac_address(out uint8[18] mac) -> int32
rpc_wifi_get_ap_bssid(out uint8[6] bssid) -> int32
rpc_wifi_register_multicast_address(uint8[6] mac) -> int32
rpc_wifi_unregister_multicast_address(uint8[6] mac) -> int32
sago35 commented 1 year ago

1

sago35 commented 1 year ago

@scottfeldman

I would like to see if netdev works with the following file. If it looks OK, I will merge it.

https://github.com/sago35/go-erpcgen/blob/20cb7bb1695d8f80d747a8243cac4f74e9f69742/rtl8720dn/rpc.go

scottfeldman commented 1 year ago

Works great! Thank you. I copied rpc.go over to my netdev branch. PR soon...

deadprogram commented 5 months ago

@sago35 looks like this PR can get merged now?

sago35 commented 5 months ago

Oops, I forgot to merge. The result of this branch is the same as drivers@v0.27.0.

sago35 commented 5 months ago

Thank you @deadprogram Cc: @scottfeldman