|
38 | 38 | #include <Nffs.h> |
39 | 39 | #include "utility/bonding.h" |
40 | 40 |
|
41 | | -#define SVC_CONTEXT_FLAG (BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS | BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS) |
42 | | - |
43 | 41 | #define CFG_BLE_TX_POWER_LEVEL 0 |
44 | 42 | #define CFG_DEFAULT_NAME "Bluefruit52" |
45 | 43 |
|
@@ -1053,7 +1051,6 @@ void AdafruitBluefruit::_ble_handler(ble_evt_t* evt) |
1053 | 1051 | if (BLE_GAP_SEC_STATUS_SUCCESS == status->auth_status) |
1054 | 1052 | { |
1055 | 1053 | _bonded = true; |
1056 | | -// ada_callback(NULL, _adafruit_save_bond_key_dfr, _conn_hdl); |
1057 | 1054 | bond_save_keys(evt_conn_hdl, &_bond_data); |
1058 | 1055 | }else |
1059 | 1056 | { |
@@ -1140,160 +1137,6 @@ void AdafruitBluefruit::clearBonds(void) |
1140 | 1137 | printBondDir(); |
1141 | 1138 | } |
1142 | 1139 |
|
1143 | | -/*------------------------------------------------------------------*/ |
1144 | | -/* Saving Bond Data to Nffs in following layout |
1145 | | - * - _bond_data 80 bytes |
1146 | | - * - Name 32 bytes |
1147 | | - * - CCCD variable |
1148 | | - *------------------------------------------------------------------*/ |
1149 | | -//void _adafruit_save_bond_key_dfr(uint32_t conn_handle) |
1150 | | -//{ |
1151 | | -// (void) conn_handle; |
1152 | | -// Bluefruit._saveBondKeys(); |
1153 | | -//} |
1154 | | - |
1155 | | -//void _adafruit_save_bond_cccd_dfr(uint32_t conn_handle) |
1156 | | -//{ |
1157 | | -// (void) conn_handle; |
1158 | | -// Bluefruit._saveBondCCCD(); |
1159 | | -//} |
1160 | | - |
1161 | | -//void AdafruitBluefruit::_saveBondKeys(void) |
1162 | | -//{ |
1163 | | -// char filename[BOND_FILENAME_LEN]; |
1164 | | -// sprintf(filename, BOND_FILENAME, _bond_data.own_enc.master_id.ediv); |
1165 | | -// |
1166 | | -// char devname[CFG_MAX_DEVNAME_LEN] = { 0 }; |
1167 | | -// Gap.getPeerName(_conn_hdl, devname, CFG_MAX_DEVNAME_LEN); |
1168 | | -// |
1169 | | -// NffsFile file(filename, FS_ACCESS_WRITE); |
1170 | | -// |
1171 | | -// VERIFY( file.exists(), ); |
1172 | | -// |
1173 | | -// bool result = true; |
1174 | | -// |
1175 | | -// // write keys |
1176 | | -// if ( !file.write((uint8_t*)&_bond_data, sizeof(_bond_data)) ) |
1177 | | -// { |
1178 | | -// result = false; |
1179 | | -// } |
1180 | | -// |
1181 | | -// // write device name |
1182 | | -// if ( strlen(devname) && !file.write((uint8_t*) devname, CFG_MAX_DEVNAME_LEN) ) |
1183 | | -// { |
1184 | | -// result = false; |
1185 | | -// } |
1186 | | -// |
1187 | | -// file.close(); |
1188 | | -// |
1189 | | -// if (result) |
1190 | | -// { |
1191 | | -// LOG_LV2("BOND", "Keys for \"%s\" is saved to file %s", devname, filename); |
1192 | | -// }else |
1193 | | -// { |
1194 | | -// LOG_LV1("BOND", "Failed to save keys for \"%s\"", devname); |
1195 | | -// } |
1196 | | -// printBondDir(); |
1197 | | -//} |
1198 | | - |
1199 | | -//bool AdafruitBluefruit::_loadBondKeys(uint16_t ediv) |
1200 | | -//{ |
1201 | | -// VERIFY_STATIC(sizeof(_bond_data) == 80 ); |
1202 | | -// |
1203 | | -// char filename[BOND_FILENAME_LEN]; |
1204 | | -// sprintf(filename, BOND_FILENAME, ediv); |
1205 | | -// |
1206 | | -// bool result = (Nffs.readFile(filename, &_bond_data, sizeof(_bond_data)) > 0); |
1207 | | -// |
1208 | | -// if ( result ) |
1209 | | -// { |
1210 | | -// LOG_LV2("BOND", "Load Keys from file %s", filename); |
1211 | | -// }else |
1212 | | -// { |
1213 | | -// LOG_LV1("BOND", "Keys not found"); |
1214 | | -// } |
1215 | | -// |
1216 | | -// return result; |
1217 | | -//} |
1218 | | - |
1219 | | -//void AdafruitBluefruit::_saveBondCCCD(void) |
1220 | | -//{ |
1221 | | -// VERIFY( _bond_data.own_enc.master_id.ediv != 0xFFFF, ); |
1222 | | -// |
1223 | | -// uint16_t len=0; |
1224 | | -// sd_ble_gatts_sys_attr_get(_conn_hdl, NULL, &len, SVC_CONTEXT_FLAG); |
1225 | | -// |
1226 | | -// uint8_t* sys_attr = (uint8_t*) rtos_malloc( len ); |
1227 | | -// VERIFY( sys_attr, ); |
1228 | | -// |
1229 | | -// if ( ERROR_NONE == sd_ble_gatts_sys_attr_get(_conn_hdl, sys_attr, &len, SVC_CONTEXT_FLAG) ) |
1230 | | -// { |
1231 | | -// // save to file |
1232 | | -// char filename[BOND_FILENAME_LEN]; |
1233 | | -// sprintf(filename, BOND_FILENAME, _bond_data.own_enc.master_id.ediv); |
1234 | | -// |
1235 | | -// if ( Nffs.writeFile(filename, sys_attr, len, BOND_FILE_CCCD_OFFSET) ) |
1236 | | -// { |
1237 | | -// LOG_LV2("BOND", "CCCD setting is saved to file %s", filename); |
1238 | | -// }else |
1239 | | -// { |
1240 | | -// LOG_LV1("BOND", "Failed to save CCCD setting"); |
1241 | | -// } |
1242 | | -// |
1243 | | -// } |
1244 | | -// |
1245 | | -// printBondDir(); |
1246 | | -// |
1247 | | -// rtos_free(sys_attr); |
1248 | | -//} |
1249 | | - |
1250 | | -//void AdafruitBluefruit::_loadBondCCCD(uint16_t ediv) |
1251 | | -//{ |
1252 | | -// bool loaded = false; |
1253 | | -// |
1254 | | -// char filename[BOND_FILENAME_LEN]; |
1255 | | -// sprintf(filename, BOND_FILENAME, ediv); |
1256 | | -// |
1257 | | -// NffsFile file(filename, FS_ACCESS_READ); |
1258 | | -// |
1259 | | -// if ( file.exists() ) |
1260 | | -// { |
1261 | | -// int32_t len = file.size() - BOND_FILE_CCCD_OFFSET; |
1262 | | -// |
1263 | | -// if ( len ) |
1264 | | -// { |
1265 | | -// uint8_t* sys_attr = (uint8_t*) rtos_malloc( len ); |
1266 | | -// |
1267 | | -// if (sys_attr) |
1268 | | -// { |
1269 | | -// file.seek(BOND_FILE_CCCD_OFFSET); |
1270 | | -// |
1271 | | -// if ( file.read(sys_attr, len ) ) |
1272 | | -// { |
1273 | | -// if (ERROR_NONE == sd_ble_gatts_sys_attr_set(_conn_hdl, sys_attr, len, SVC_CONTEXT_FLAG) ) |
1274 | | -// { |
1275 | | -// loaded = true; |
1276 | | -// |
1277 | | -// LOG_LV2("BOND", "Load CCCD from file %s", filename); |
1278 | | -// }else |
1279 | | -// { |
1280 | | -// LOG_LV1("BOND", "CCCD setting not found"); |
1281 | | -// } |
1282 | | -// } |
1283 | | -// |
1284 | | -// rtos_free(sys_attr); |
1285 | | -// } |
1286 | | -// } |
1287 | | -// } |
1288 | | -// |
1289 | | -// file.close(); |
1290 | | -// |
1291 | | -// if ( !loaded ) |
1292 | | -// { |
1293 | | -// sd_ble_gatts_sys_attr_set(_conn_hdl, NULL, 0, 0); |
1294 | | -// } |
1295 | | -//} |
1296 | | - |
1297 | 1140 | void AdafruitBluefruit::_bledfu_get_bond_data(ble_gap_addr_t* addr, ble_gap_irk_t* irk, ble_gap_enc_key_t* enc_key) |
1298 | 1141 | { |
1299 | 1142 | if (!_bonded) |
|
0 commit comments