MCPcopy Create free account
hub / github.com/ArduPilot/ArduRemoteID / init

Method init

RemoteIDModule/BLE_TX.cpp:89–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87static BLEMultiAdvertising advert(2);
88
89bool BLE_TX::init(void)
90{
91 if (initialised) {
92 return true;
93 }
94 initialised = true;
95 BLEDevice::init("");
96
97 // setup power levels
98 legacy_adv_params.tx_power = dBm_to_tx_power(g.bt4_power);
99 ext_adv_params_coded.tx_power = dBm_to_tx_power(g.bt5_power);
100
101 // set min/max interval based on output rate
102 legacy_adv_params.interval_max = (1000/(g.bt4_rate*7))/0.625;
103 legacy_adv_params.interval_min = 0.75*legacy_adv_params.interval_max;
104 ext_adv_params_coded.interval_max = (1000/(g.bt5_rate))/0.625;
105 ext_adv_params_coded.interval_min = 0.75*ext_adv_params_coded.interval_max;
106
107 // generate random mac address
108 uint8_t mac_addr[6];
109 generate_random_mac(mac_addr);
110
111 // set as a bluetooth random static address
112 mac_addr[0] |= 0xc0;
113
114 advert.setAdvertisingParams(0, &legacy_adv_params);
115 advert.setInstanceAddress(0, mac_addr);
116 advert.setDuration(0);
117
118 advert.setAdvertisingParams(1, &ext_adv_params_coded);
119 advert.setDuration(1);
120 advert.setInstanceAddress(1, mac_addr);
121
122 // prefer S8 coding
123 if (esp_ble_gap_set_prefered_default_phy(ESP_BLE_GAP_PHY_OPTIONS_PREF_S8_CODING, ESP_BLE_GAP_PHY_OPTIONS_PREF_S8_CODING) != ESP_OK) {
124 Serial.printf("Failed to setup S8 coding\n");
125 }
126
127 memset(&msg_counters,0, sizeof(msg_counters));
128 return true;
129}
130
131#define IMIN(a,b) ((a)<(b)?(a):(b))
132

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected