From 0f37bc22e0c3c985f7942f59a2fa989c1f51953e Mon Sep 17 00:00:00 2001 From: pyhs Date: Thu, 6 Jul 2017 14:50:29 -0400 Subject: [PATCH] Combined Xbee status info into a structure for the buzz VM --- include/buzz_utility.h | 2 -- include/buzzuav_closures.h | 9 +++---- src/buzz_utility.cpp | 12 +-------- src/buzzuav_closures.cpp | 50 ++++++++++++++++---------------------- 4 files changed, 26 insertions(+), 47 deletions(-) diff --git a/include/buzz_utility.h b/include/buzz_utility.h index b61faf3..40be6f0 100644 --- a/include/buzz_utility.h +++ b/include/buzz_utility.h @@ -49,8 +49,6 @@ uint64_t* obt_out_msg(); void update_sensors(); -void update_xbee_status(); - int buzz_script_set(const char* bo_filename, const char* bdbg_filename, int robot_id); diff --git a/include/buzzuav_closures.h b/include/buzzuav_closures.h index 0e9ff4a..fac506c 100644 --- a/include/buzzuav_closures.h +++ b/include/buzzuav_closures.h @@ -88,11 +88,10 @@ int buzzuav_gohome(buzzvm_t vm); * Updates battery information in Buzz */ int buzzuav_update_battery(buzzvm_t vm); -int buzzuav_update_deque_full(buzzvm_t vm); -int buzzuav_update_rssi(buzzvm_t vm); -int buzzuav_update_raw_packet_loss(buzzvm_t vm); -int buzzuav_update_filtered_packet_loss(buzzvm_t vm); -int buzzuav_update_api_rssi(buzzvm_t vm); +/* + * Updates xbee_status information in Buzz + */ +int buzzuav_update_xbee_status(buzzvm_t vm); /* * Updates current position in Buzz */ diff --git a/src/buzz_utility.cpp b/src/buzz_utility.cpp index b644439..3453a65 100644 --- a/src/buzz_utility.cpp +++ b/src/buzz_utility.cpp @@ -681,6 +681,7 @@ int create_stig_tables() { void update_sensors(){ /* Update sensors*/ buzzuav_closures::buzzuav_update_battery(VM); + buzzuav_closures::buzzuav_update_xbee_status(VM); buzzuav_closures::buzzuav_update_prox(VM); buzzuav_closures::buzzuav_update_currentpos(VM); buzzuav_closures::update_neighbors(VM); @@ -689,22 +690,11 @@ int create_stig_tables() { buzzuav_closures::buzzuav_update_flight_status(VM); } - void update_xbee_status(){ - /* Update sensors*/ - buzzuav_closures::buzzuav_update_deque_full(VM); - buzzuav_closures::buzzuav_update_rssi(VM); - buzzuav_closures::buzzuav_update_raw_packet_loss(VM); - buzzuav_closures::buzzuav_update_filtered_packet_loss(VM); - buzzuav_closures::buzzuav_update_api_rssi(VM); - } - void buzz_script_step() { /*Process available messages*/ in_message_process(); /*Update sensors*/ update_sensors(); - - update_xbee_status(); /* Call Buzz step() function */ if(buzzvm_function_call(VM, "step", 0) != BUZZVM_STATE_READY) { ROS_ERROR("%s: execution terminated abnormally: %s", diff --git a/src/buzzuav_closures.cpp b/src/buzzuav_closures.cpp index 74e5ca8..fcfb752 100644 --- a/src/buzzuav_closures.cpp +++ b/src/buzzuav_closures.cpp @@ -345,57 +345,49 @@ namespace buzzuav_closures{ deque_full = state; } - int buzzuav_update_deque_full(buzzvm_t vm) { - buzzvm_pushs(vm, buzzvm_string_register(vm, "deque_full", 1)); - buzzvm_pushi(vm, static_cast(deque_full)); - buzzvm_gstore(vm); - return vm->state; - } - void set_rssi(float value) { rssi = value; } - int buzzuav_update_rssi(buzzvm_t vm) { - buzzvm_pushs(vm, buzzvm_string_register(vm, "rssi", 1)); - buzzvm_pushf(vm, rssi); - buzzvm_gstore(vm); - return vm->state; - } - void set_raw_packet_loss(float value) { raw_packet_loss = value; } - int buzzuav_update_raw_packet_loss(buzzvm_t vm) { - buzzvm_pushs(vm, buzzvm_string_register(vm, "raw_packet_loss", 1)); - buzzvm_pushf(vm, raw_packet_loss); - buzzvm_gstore(vm); - return vm->state; - } - void set_filtered_packet_loss(float value) { filtered_packet_loss = value; } - int buzzuav_update_filtered_packet_loss(buzzvm_t vm) { - buzzvm_pushs(vm, buzzvm_string_register(vm, "filtered_packet_loss", 1)); - buzzvm_pushf(vm, filtered_packet_loss); - buzzvm_gstore(vm); - return vm->state; - } - void set_api_rssi(float value) { api_rssi = value; } - int buzzuav_update_api_rssi(buzzvm_t vm) { + int buzzuav_update_xbee_status(buzzvm_t vm) { + buzzvm_pushs(vm, buzzvm_string_register(vm, "xbee_status", 1)); + buzzvm_pusht(vm); + buzzvm_dup(vm); + buzzvm_pushs(vm, buzzvm_string_register(vm, "deque_full", 1)); + buzzvm_pushi(vm, static_cast(deque_full)); + buzzvm_tput(vm); + buzzvm_dup(vm); + buzzvm_pushs(vm, buzzvm_string_register(vm, "rssi", 1)); + buzzvm_pushf(vm, rssi); + buzzvm_tput(vm); + buzzvm_dup(vm); + buzzvm_pushs(vm, buzzvm_string_register(vm, "raw_packet_loss", 1)); + buzzvm_pushf(vm, raw_packet_loss); + buzzvm_tput(vm); + buzzvm_dup(vm); + buzzvm_pushs(vm, buzzvm_string_register(vm, "filtered_packet_loss", 1)); + buzzvm_pushf(vm, filtered_packet_loss); + buzzvm_tput(vm); + buzzvm_dup(vm); buzzvm_pushs(vm, buzzvm_string_register(vm, "api_rssi", 1)); buzzvm_pushf(vm, api_rssi); + buzzvm_tput(vm); buzzvm_gstore(vm); return vm->state; }