You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

341 lines
17 KiB

2 years ago
2 years ago
2 years ago
2 years ago
  1. #include "reg_index_table.hpp"
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "reg_index.hpp"
  5. using namespace iflytop;
  6. // DUMP_CONFIG("reg_pwm0_ctrl",);
  7. // DUMP_CONFIG("reg_pwm0_duty",);
  8. // DUMP_CONFIG("reg_pwm0_freq",);
  9. // DUMP_CONFIG("reg_pwm1_ctrl",);
  10. // DUMP_CONFIG("reg_pwm1_duty",);
  11. // DUMP_CONFIG("reg_pwm1_freq",);
  12. // DUMP_CONFIG("reg_pwm2_ctrl",);
  13. // DUMP_CONFIG("reg_pwm2_duty",);
  14. // DUMP_CONFIG("reg_pwm2_freq",);
  15. // DUMP_CONFIG("reg_pwm3_ctrl",);
  16. // DUMP_CONFIG("reg_pwm3_duty",);
  17. // DUMP_CONFIG("reg_pwm3_freq",);
  18. // DUMP_CONFIG("reg_pwm4_ctrl",);
  19. // DUMP_CONFIG("reg_pwm4_duty",);
  20. // DUMP_CONFIG("reg_pwm4_freq",);
  21. // DUMP_CONFIG("reg_pwm5_ctrl",);
  22. // DUMP_CONFIG("reg_pwm5_duty",);
  23. // DUMP_CONFIG("reg_pwm5_freq",);
  24. // DUMP_CONFIG("reg_pwm6_ctrl",);
  25. // DUMP_CONFIG("reg_pwm6_duty",);
  26. // DUMP_CONFIG("reg_pwm6_freq",);
  27. // DUMP_CONFIG("reg_pwm7_ctrl",);
  28. // DUMP_CONFIG("reg_pwm7_duty",);
  29. // DUMP_CONFIG("reg_pwm7_freq",);
  30. static reg_index_table_iterm_t iterms[] = {
  31. {"module_version", kreg_module_version},
  32. {"module_type", kreg_module_type},
  33. {"module_status", kreg_module_status},
  34. {"module_errorcode", kreg_module_errorcode},
  35. {"module_initflag", kreg_module_initflag},
  36. {"module_enableflag", kreg_module_enableflag},
  37. {"module_errorbitflag0", kreg_module_errorbitflag0},
  38. {"module_errorbitflag1", kreg_module_errorbitflag1},
  39. {"module_input_state", kreg_module_input_state},
  40. {"module_output_state", kreg_module_output_state},
  41. {"module_raw_sector_size", kreg_module_raw_sector_size},
  42. {"module_raw_sector_num", kreg_module_raw_sector_num},
  43. {"module_is_online", kreg_module_is_online},
  44. {"module_last_cmd_exec_status", kreg_module_last_cmd_exec_status},
  45. {"module_last_cmd_exec_val0", kreg_module_last_cmd_exec_val0},
  46. {"module_last_cmd_exec_val1", kreg_module_last_cmd_exec_val1},
  47. {"module_last_cmd_exec_val2", kreg_module_last_cmd_exec_val2},
  48. {"module_last_cmd_exec_val3", kreg_module_last_cmd_exec_val3},
  49. {"module_last_cmd_exec_val4", kreg_module_last_cmd_exec_val4},
  50. {"module_last_cmd_exec_val5", kreg_module_last_cmd_exec_val5},
  51. {"module_private0", kreg_module_private0},
  52. {"module_private1", kreg_module_private1},
  53. {"module_private2", kreg_module_private2},
  54. {"module_private3", kreg_module_private3},
  55. {"module_private4", kreg_module_private4},
  56. {"module_private5", kreg_module_private5},
  57. {"module_private6", kreg_module_private6},
  58. {"module_private7", kreg_module_private7},
  59. {"module_private8", kreg_module_private8},
  60. {"module_private9", kreg_module_private9},
  61. {"module_do_action0", kreg_module_do_action0},
  62. {"module_action_param1", kreg_module_action_param1},
  63. {"module_action_param2", kreg_module_action_param2},
  64. {"module_action_param3", kreg_module_action_param3},
  65. {"module_action_param4", kreg_module_action_param4},
  66. {"module_action_param5", kreg_module_action_param5},
  67. {"module_action_param6", kreg_module_action_param6},
  68. {"module_action_param7", kreg_module_action_param7},
  69. {"module_action_param8", kreg_module_action_param8},
  70. {"module_action_param9", kreg_module_action_param9},
  71. {"module_action_ack1", kreg_module_action_ack1},
  72. {"module_action_ack2", kreg_module_action_ack2},
  73. {"module_action_ack3", kreg_module_action_ack3},
  74. {"module_action_ack4", kreg_module_action_ack4},
  75. {"module_action_ack5", kreg_module_action_ack5},
  76. {"module_action_ack6", kreg_module_action_ack6},
  77. {"module_action_ack7", kreg_module_action_ack7},
  78. {"module_action_ack8", kreg_module_action_ack8},
  79. {"module_action_ack9", kreg_module_action_ack9},
  80. {"sensor_current", kreg_sensor_current},
  81. {"sensor_voltage", kreg_sensor_voltage},
  82. {"sensor_temperature", kreg_sensor_temperature},
  83. {"sensor_humidity", kreg_sensor_humidity},
  84. {"sensor_wind_speed", kreg_sensor_wind_speed},
  85. {"sensor_wind_dir", kreg_sensor_wind_dir},
  86. {"sensor_air_press", kreg_sensor_air_press},
  87. {"sensor_pm25", kreg_sensor_pm25},
  88. {"sensor_pm10", kreg_sensor_pm10},
  89. {"sensor_co", kreg_sensor_co},
  90. {"sensor_co2", kreg_sensor_co2},
  91. {"sensor_no2", kreg_sensor_no2},
  92. {"sensor_so2", kreg_sensor_so2},
  93. {"sensor_o3", kreg_sensor_o3},
  94. {"sensor_light_intensity", kreg_sensor_light_intensity},
  95. {"sensor_radiation", kreg_sensor_radiation},
  96. {"sensor_hydrogen_peroxide_volume", kreg_sensor_hydrogen_peroxide_volume},
  97. {"sensor_h2o_h2o2_rs", kreg_sensor_h2o_h2o2_rs},
  98. {"sensor_relative_humidity", kreg_sensor_relative_humidity},
  99. {"sensor_absolute_hydrogen_peroxide", kreg_sensor_absolute_hydrogen_peroxide},
  100. {"sensor_h2o_h2o2dew_point_temperature", kreg_sensor_h2o_h2o2dew_point_temperature},
  101. {"sensor_water_volume", kreg_sensor_water_volume},
  102. {"sensor_water_vapor_pressure", kreg_sensor_water_vapor_pressure},
  103. {"sensor_absolute_humidity", kreg_sensor_absolute_humidity},
  104. {"sensor_water_vapor_saturation_pressure_h2o", kreg_sensor_water_vapor_saturation_pressure_h2o},
  105. {"sensor_h2o2_vapor_pressure", kreg_sensor_h2o2_vapor_pressure},
  106. {"sensor_water_vapor_saturation_pressure_h2o_h2o2", kreg_sensor_water_vapor_saturation_pressure_h2o_h2o2},
  107. {"sensor_temperature0", kreg_sensor_temperature0},
  108. {"sensor_temperature1", kreg_sensor_temperature1},
  109. {"sensor_temperature2", kreg_sensor_temperature2},
  110. {"sensor_temperature3", kreg_sensor_temperature3},
  111. {"sensor_temperature4", kreg_sensor_temperature4},
  112. {"sensor_temperature5", kreg_sensor_temperature5},
  113. {"sensor_temperature6", kreg_sensor_temperature6},
  114. {"sensor_temperature7", kreg_sensor_temperature7},
  115. {"sensor_temperature8", kreg_sensor_temperature8},
  116. {"sensor_temperature9", kreg_sensor_temperature9},
  117. {"sensor_pressure0", kreg_sensor_pressure0},
  118. {"sensor_pressure1", kreg_sensor_pressure1},
  119. {"sensor_pressure2", kreg_sensor_pressure2},
  120. {"sensor_pressure3", kreg_sensor_pressure3},
  121. {"sensor_pressure4", kreg_sensor_pressure4},
  122. {"sensor_pressure5", kreg_sensor_pressure5},
  123. {"sensor_pressure6", kreg_sensor_pressure6},
  124. {"sensor_pressure7", kreg_sensor_pressure7},
  125. {"sensor_pressure8", kreg_sensor_pressure8},
  126. {"sensor_pressure9", kreg_sensor_pressure9},
  127. {"sensor_humidity0", kreg_sensor_humidity0},
  128. {"sensor_humidity1", kreg_sensor_humidity1},
  129. {"sensor_humidity2", kreg_sensor_humidity2},
  130. {"sensor_humidity3", kreg_sensor_humidity3},
  131. {"sensor_humidity4", kreg_sensor_humidity4},
  132. {"sensor_humidity5", kreg_sensor_humidity5},
  133. {"sensor_humidity6", kreg_sensor_humidity6},
  134. {"sensor_humidity7", kreg_sensor_humidity7},
  135. {"sensor_humidity8", kreg_sensor_humidity8},
  136. {"sensor_humidity9", kreg_sensor_humidity9},
  137. {"reg_pwm0_ctrl", kreg_pwm0_ctrl},
  138. {"reg_pwm0_duty", kreg_pwm0_duty},
  139. {"reg_pwm0_freq", kreg_pwm0_freq},
  140. {"reg_pwm1_ctrl", kreg_pwm1_ctrl},
  141. {"reg_pwm1_duty", kreg_pwm1_duty},
  142. {"reg_pwm1_freq", kreg_pwm1_freq},
  143. {"reg_pwm2_ctrl", kreg_pwm2_ctrl},
  144. {"reg_pwm2_duty", kreg_pwm2_duty},
  145. {"reg_pwm2_freq", kreg_pwm2_freq},
  146. {"reg_pwm3_ctrl", kreg_pwm3_ctrl},
  147. {"reg_pwm3_duty", kreg_pwm3_duty},
  148. {"reg_pwm3_freq", kreg_pwm3_freq},
  149. {"reg_pwm4_ctrl", kreg_pwm4_ctrl},
  150. {"reg_pwm4_duty", kreg_pwm4_duty},
  151. {"reg_pwm4_freq", kreg_pwm4_freq},
  152. {"reg_pwm5_ctrl", kreg_pwm5_ctrl},
  153. {"reg_pwm5_duty", kreg_pwm5_duty},
  154. {"reg_pwm5_freq", kreg_pwm5_freq},
  155. {"reg_pwm6_ctrl", kreg_pwm6_ctrl},
  156. {"reg_pwm6_duty", kreg_pwm6_duty},
  157. {"reg_pwm6_freq", kreg_pwm6_freq},
  158. {"reg_pwm7_ctrl", kreg_pwm7_ctrl},
  159. {"reg_pwm7_duty", kreg_pwm7_duty},
  160. {"reg_pwm7_freq", kreg_pwm7_freq},
  161. {"robot_move", kreg_robot_move},
  162. {"robot_pos", kreg_robot_pos},
  163. {"robot_velocity", kreg_robot_velocity},
  164. {"robot_torque", kreg_robot_torque},
  165. {"motor_shift", kreg_motor_shift},
  166. {"motor_shaft", kreg_motor_shaft},
  167. {"motor_one_circle_pulse", kreg_motor_one_circle_pulse},
  168. {"motor_one_circle_pulse_denominator", kreg_motor_one_circle_pulse_denominator},
  169. {"motor_default_velocity", kreg_motor_default_velocity},
  170. {"motor_default_acc", kreg_motor_default_acc},
  171. {"motor_default_dec", kreg_motor_default_dec},
  172. {"motor_default_break_dec", kreg_motor_default_break_dec},
  173. {"stepmotor_ihold", kreg_stepmotor_ihold},
  174. {"stepmotor_irun", kreg_stepmotor_irun},
  175. {"stepmotor_iholddelay", kreg_stepmotor_iholddelay},
  176. {"stepmotor_iglobalscaler", kreg_stepmotor_iglobalscaler},
  177. {"motor_run_to_zero_max_d", kreg_motor_run_to_zero_max_d},
  178. {"motor_look_zero_edge_max_d", kreg_motor_look_zero_edge_max_d},
  179. {"motor_run_to_zero_speed", kreg_motor_run_to_zero_speed},
  180. {"motor_run_to_zero_dec", kreg_motor_run_to_zero_dec},
  181. {"motor_look_zero_edge_speed", kreg_motor_look_zero_edge_speed},
  182. {"motor_look_zero_edge_dec", kreg_motor_look_zero_edge_dec},
  183. {"motor_default_torque", kreg_motor_default_torque},
  184. {"motor_max_d", kreg_motor_max_d},
  185. {"motor_min_d", kreg_motor_min_d},
  186. {"robot_x_move", kreg_robot_x_move},
  187. {"robot_x_pos", kreg_robot_x_pos},
  188. {"robot_x_velocity", kreg_robot_x_velocity},
  189. {"robot_x_torque", kreg_robot_x_torque},
  190. {"motor_x_shift", kreg_motor_x_shift},
  191. {"motor_x_shaft", kreg_motor_x_shaft},
  192. {"motor_x_one_circle_pulse", kreg_motor_x_one_circle_pulse},
  193. {"motor_x_default_velocity", kreg_motor_x_default_velocity},
  194. {"motor_x_default_acc", kreg_motor_x_default_acc},
  195. {"motor_x_default_dec", kreg_motor_x_default_dec},
  196. {"motor_x_default_break_dec", kreg_motor_x_default_break_dec},
  197. {"stepmotor_x_ihold", kreg_stepmotor_x_ihold},
  198. {"stepmotor_x_irun", kreg_stepmotor_x_irun},
  199. {"stepmotor_x_iholddelay", kreg_stepmotor_x_iholddelay},
  200. {"motor_run_to_zero_max_x_d", kreg_motor_run_to_zero_max_x_d},
  201. {"motor_look_zero_edge_max_x_d", kreg_motor_look_zero_edge_max_x_d},
  202. {"motor_x_run_to_zero_speed", kreg_motor_x_run_to_zero_speed},
  203. {"motor_x_run_to_zero_dec", kreg_motor_x_run_to_zero_dec},
  204. {"motor_x_look_zero_edge_speed", kreg_motor_x_look_zero_edge_speed},
  205. {"motor_x_look_zero_edge_dec", kreg_motor_x_look_zero_edge_dec},
  206. {"motor_x_default_torque", kreg_motor_x_default_torque},
  207. {"motor_max_x_d", kreg_motor_max_x_d},
  208. {"motor_min_x_d", kreg_motor_min_x_d},
  209. {"robot_y_move", kreg_robot_y_move},
  210. {"robot_y_pos", kreg_robot_y_pos},
  211. {"robot_y_velocity", kreg_robot_y_velocity},
  212. {"robot_y_torque", kreg_robot_y_torque},
  213. {"motor_y_shift", kreg_motor_y_shift},
  214. {"motor_y_shaft", kreg_motor_y_shaft},
  215. {"motor_y_one_circle_pulse", kreg_motor_y_one_circle_pulse},
  216. {"motor_y_default_velocity", kreg_motor_y_default_velocity},
  217. {"motor_y_default_acc", kreg_motor_y_default_acc},
  218. {"motor_y_default_dec", kreg_motor_y_default_dec},
  219. {"motor_y_default_break_dec", kreg_motor_y_default_break_dec},
  220. {"stepmotor_y_ihold", kreg_stepmotor_y_ihold},
  221. {"stepmotor_y_irun", kreg_stepmotor_y_irun},
  222. {"stepmotor_y_iholddelay", kreg_stepmotor_y_iholddelay},
  223. {"motor_run_to_zero_max_y_d", kreg_motor_run_to_zero_max_y_d},
  224. {"motor_look_zero_edge_max_y_d", kreg_motor_look_zero_edge_max_y_d},
  225. {"motor_y_run_to_zero_speed", kreg_motor_y_run_to_zero_speed},
  226. {"motor_y_run_to_zero_dec", kreg_motor_y_run_to_zero_dec},
  227. {"motor_y_look_zero_edge_speed", kreg_motor_y_look_zero_edge_speed},
  228. {"motor_y_look_zero_edge_dec", kreg_motor_y_look_zero_edge_dec},
  229. {"motor_y_default_torque", kreg_motor_y_default_torque},
  230. {"motor_max_y_d", kreg_motor_max_y_d},
  231. {"motor_min_y_d", kreg_motor_min_y_d},
  232. {"robot_z_move", kreg_robot_z_move},
  233. {"robot_z_pos", kreg_robot_z_pos},
  234. {"robot_z_velocity", kreg_robot_z_velocity},
  235. {"robot_z_torque", kreg_robot_z_torque},
  236. {"motor_z_shift", kreg_motor_z_shift},
  237. {"motor_z_shaft", kreg_motor_z_shaft},
  238. {"motor_z_one_circle_pulse", kreg_motor_z_one_circle_pulse},
  239. {"motor_z_default_velocity", kreg_motor_z_default_velocity},
  240. {"motor_z_default_acc", kreg_motor_z_default_acc},
  241. {"motor_z_default_dec", kreg_motor_z_default_dec},
  242. {"motor_z_default_break_dec", kreg_motor_z_default_break_dec},
  243. {"stepmotor_z_ihold", kreg_stepmotor_z_ihold},
  244. {"stepmotor_z_irun", kreg_stepmotor_z_irun},
  245. {"stepmotor_z_iholddelay", kreg_stepmotor_z_iholddelay},
  246. {"motor_run_to_zero_max_z_d", kreg_motor_run_to_zero_max_z_d},
  247. {"motor_look_zero_edge_max_z_d", kreg_motor_look_zero_edge_max_z_d},
  248. {"motor_z_run_to_zero_speed", kreg_motor_z_run_to_zero_speed},
  249. {"motor_z_run_to_zero_dec", kreg_motor_z_run_to_zero_dec},
  250. {"motor_z_look_zero_edge_speed", kreg_motor_z_look_zero_edge_speed},
  251. {"motor_z_look_zero_edge_dec", kreg_motor_z_look_zero_edge_dec},
  252. {"motor_z_default_torque", kreg_motor_z_default_torque},
  253. {"motor_max_z_d", kreg_motor_max_z_d},
  254. {"motor_min_z_d", kreg_motor_min_z_d},
  255. {"xyrobot_robot_type", kreg_xyrobot_robot_type},
  256. {"pid_target", kreg_pid_target},
  257. {"pid_nowoutput", kreg_pid_nowoutput},
  258. {"pid_feedbackval", kreg_pid_feedbackval},
  259. {"pid_kp", kreg_pid_kp},
  260. {"pid_ki", kreg_pid_ki},
  261. {"pid_kd", kreg_pid_kd},
  262. {"pid_max_output", kreg_pid_max_output},
  263. {"pid_min_output", kreg_pid_min_output},
  264. {"pid_max_integral", kreg_pid_max_integral},
  265. {"pid_min_integral", kreg_pid_min_integral},
  266. {"error_limit", kreg_error_limit},
  267. {"compute_interval", kreg_compute_interval},
  268. {"fan0_ctrl_speed_level", kreg_fan0_ctrl_speed_level},
  269. {"fan1_ctrl_speed_level", kreg_fan1_ctrl_speed_level},
  270. {"fan2_ctrl_speed_level", kreg_fan2_ctrl_speed_level},
  271. {"fan3_ctrl_speed_level", kreg_fan3_ctrl_speed_level},
  272. {"fan4_ctrl_speed_level", kreg_fan4_ctrl_speed_level},
  273. {"fan0_speed_level", kreg_fan0_speed_level},
  274. {"fan1_speed_level", kreg_fan1_speed_level},
  275. {"fan2_speed_level", kreg_fan2_speed_level},
  276. {"fan3_speed_level", kreg_fan3_speed_level},
  277. {"fan4_speed_level", kreg_fan4_speed_level},
  278. {"pwm_pump0_ctrl_speed_level", kreg_pwm_pump0_ctrl_speed_level},
  279. {"pwm_pump1_ctrl_speed_level", kreg_pwm_pump1_ctrl_speed_level},
  280. {"pwm_pump2_ctrl_speed_level", kreg_pwm_pump2_ctrl_speed_level},
  281. {"pwm_pump3_ctrl_speed_level", kreg_pwm_pump3_ctrl_speed_level},
  282. {"pwm_pump4_ctrl_speed_level", kreg_pwm_pump4_ctrl_speed_level},
  283. {"pwm_pump0_speed_level", kreg_pwm_pump0_speed_level},
  284. {"pwm_pump1_speed_level", kreg_pwm_pump1_speed_level},
  285. {"pwm_pump2_speed_level", kreg_pwm_pump2_speed_level},
  286. {"pwm_pump3_speed_level", kreg_pwm_pump3_speed_level},
  287. {"pwm_pump4_speed_level", kreg_pwm_pump4_speed_level},
  288. {"pipette_pos_ul", kreg_pipette_pos_ul},
  289. {"pipette_capactitance_val", kreg_pipette_capactitance_val},
  290. {"pipette_tip_state", kreg_pipette_tip_state},
  291. {"pipette_limit_ul", kreg_pipette_limit_ul},
  292. {"self_reflecting_laser_sensor_transmitting_power", kreg_self_reflecting_laser_sensor_transmitting_power},
  293. {"self_reflecting_laser_sensor_receiving_tube_gain", kreg_self_reflecting_laser_sensor_receiving_tube_gain},
  294. {"self_reflecting_laser_sensor_sample_interval_ms", kreg_self_reflecting_laser_sensor_sample_interval_ms},
  295. {"self_reflecting_laser_sensor_num_samples", kreg_self_reflecting_laser_sensor_num_samples},
  296. {"boditech_optical_scan_type", kreg_boditech_optical_scan_type},
  297. {"boditech_optical_scan_start_pos", kreg_boditech_optical_scan_start_pos},
  298. {"boditech_optical_scan_direction", kreg_boditech_optical_scan_direction},
  299. {"boditech_optical_scan_step_interval", kreg_boditech_optical_scan_step_interval},
  300. {"boditech_optical_scan_pointnum", kreg_boditech_optical_scan_pointnum},
  301. {"boditech_optical_channel_select_num", kreg_boditech_optical_channel_select_num},
  302. {"boditech_optical_laster_gain", kreg_boditech_optical_laster_gain},
  303. {"boditech_optical_scan_gain", kreg_boditech_optical_scan_gain},
  304. {"boditech_optical_trf_uvled_on_duration_us", kreg_boditech_optical_trf_uvled_on_duration_us},
  305. {"boditech_optical_trf_uvled_off_duration_us", kreg_boditech_optical_trf_uvled_off_duration_us},
  306. {"boditech_optical_trf_scan_delay_us", kreg_boditech_optical_trf_scan_delay_us},
  307. {"boditech_optical_trf_scan_duration_us", kreg_boditech_optical_trf_scan_duration_us},
  308. {"boditech_optical_scan_gain_adjust_suggestion", kreg_boditech_optical_scan_gain_adjust_suggestion},
  309. {"boditech_optical_adc_result_overflow", kreg_boditech_optical_adc_result_overflow},
  310. {"boditech_optical_laster_intensity", kreg_boditech_optical_laster_intensity},
  311. {"laster_scaner_scan_type", kreg_laster_scaner_scan_type},
  312. {"laster_scaner_scan_start_pos", kreg_laster_scaner_scan_start_pos},
  313. {"laster_scaner_scan_direction", kreg_laster_scaner_scan_direction},
  314. {"laster_scaner_scan_step_interval", kreg_laster_scaner_scan_step_interval},
  315. {"laster_scaner_scan_pointnum", kreg_laster_scaner_scan_pointnum},
  316. {"laster_scaner_laster_gain", kreg_laster_scaner_laster_gain},
  317. {"laster_scaner_scan_gain", kreg_laster_scaner_scan_gain},
  318. {"laster_scaner_scan_gain_adjust_suggestion", kreg_laster_scaner_scan_gain_adjust_suggestion},
  319. {"laster_scaner_adc_result_overflow", kreg_laster_scaner_adc_result_overflow},
  320. {"laster_scaner_laster_intensity", kreg_laster_scaner_laster_intensity},
  321. };
  322. namespace iflytop {
  323. void reg_index_table_get(reg_index_table_iterm_t** table, int32_t* size) {
  324. *size = sizeof(iterms) / sizeof(iterms[0]);
  325. *table = iterms;
  326. }
  327. int32_t str_to_reg_index(const char* val) {
  328. for (int32_t i = 0; i < sizeof(iterms) / sizeof(iterms[0]); i++) {
  329. if (strcmp(iterms[i].name, val) == 0) {
  330. return iterms[i].index;
  331. }
  332. }
  333. return atoi(val);
  334. }
  335. } // namespace iflytop