/* Update discriminant for device-tech */
tech->discriminant = a_device->discriminant;
- /* Update device's discriminant to database */
+ /* Update Payload for device-tech */
+ tech->payload->service_id = a_device->payload.service_id;
+ tech->payload->purpose = a_device->payload.purpose;
+ tech->payload->device_icon = a_device->payload.device_icon;
+ tech->payload->duid = g_memdup(&(a_device->payload.duid), UAM_BLE_PAYLOAD_DUID_LEN);
+ tech->payload->bt_mac = g_memdup(&(a_device->payload.bt_mac), UAM_BT_MAC_ADDRESS_STRING_LEN);
+
+ /* Update device's updated information to database */
__copy_tech_info_to_device_info(tech, &temp);
ret = _ua_device_db_update_device_device(temp.device_id, temp.type,
- temp.mac, temp.ipv4_addr, temp.operating_system, temp.discriminant);
+ temp.mac, temp.ipv4_addr, temp.operating_system, temp.discriminant,
+ temp.payload);
if (UAM_ERROR_NONE != ret)
UAM_WARN("_ua_device_db_update_device_device failed [%d]", ret);
}
"SET ip_address = ? WHERE device_id = ? AND tech_type = ? AND address = ?"
#define UPDATE_DEVICE "UPDATE devices " \
- "SET (os_type, discriminant, ip_address) = (?, ?, ?) " \
+ "SET (os_type, discriminant, ip_address, service_id, " \
+ "purpose, duid) = (?, ?, ?, ?, ?, ?) " \
"WHERE device_id = ? AND tech_type = ? AND address = ?"
#define DELETE_ALL_DEVICES "delete from devices "
}
int _ua_device_db_update_device_device(char *device_id, int tech_type,
- char *address, char *ip, char os_type, char discriminant)
+ char *address, char *ip, char os_type, char discriminant, uam_ble_payload_s payload)
{
int error_code = UAM_ERROR_NONE;
sqlite3_stmt *stmt = update_device;
error_code, handle_error);
DB_ACTION(sqlite3_bind_text(stmt, 3, ip, -1, SQLITE_TRANSIENT),
error_code, handle_error);
- DB_ACTION(sqlite3_bind_text(stmt, 4, device_id, -1, SQLITE_TRANSIENT),
+ DB_ACTION(sqlite3_bind_text(stmt, 4, &(payload.service_id), 1, SQLITE_TRANSIENT),
error_code, handle_error);
- DB_ACTION(sqlite3_bind_int(stmt, 5, tech_type),
+ DB_ACTION(sqlite3_bind_text(stmt, 5, &(payload.purpose), 1, SQLITE_TRANSIENT),
error_code, handle_error);
- DB_ACTION(sqlite3_bind_text(stmt, 6, address, -1, SQLITE_TRANSIENT),
+ DB_ACTION(sqlite3_bind_text(stmt, 6, payload.duid, UAM_BLE_PAYLOAD_DUID_LEN + 1, SQLITE_TRANSIENT),
+ error_code, handle_error);
+ DB_ACTION(sqlite3_bind_text(stmt, 7, device_id, -1, SQLITE_TRANSIENT),
+ error_code, handle_error);
+ DB_ACTION(sqlite3_bind_int(stmt, 8, tech_type),
+ error_code, handle_error);
+ DB_ACTION(sqlite3_bind_text(stmt, 9, address, -1, SQLITE_TRANSIENT),
error_code, handle_error);
if (sqlite3_step(stmt) != SQLITE_DONE) {
DB_ACTION(sqlite3_bind_int(stmt, 9, dev_info->discriminant),
error_code, handle_error);
DB_ACTION(sqlite3_bind_text(stmt, 10, &(dev_info->payload.service_id), 1, SQLITE_TRANSIENT),
- error_code, handle_error); // fourth parameter is number of bytes, set to 1 to store one byte
+ error_code, handle_error);
DB_ACTION(sqlite3_bind_text(stmt, 11, &(dev_info->payload.purpose), 1, SQLITE_TRANSIENT),
error_code, handle_error);
DB_ACTION(sqlite3_bind_text(stmt, 12, dev_info->payload.duid, UAM_BLE_PAYLOAD_DUID_LEN + 1, SQLITE_TRANSIENT),