本章主要介绍一些Tbot-I 相关的 C++ 基础知识,扩展阅读请参考相关教材。

命名规则

  • 类名称全部大写,实例名称的首字母大写。枚举变量、类方法使用的是类名,调用函数使用的是实例名称。

    传入数据与返回数据

  • 一般的传感器返回数据是整型数据,一般使用 int 数据类型即可,要获得更大范围的整型数据使用无符号类型uint32_t。同时有一些传感器可以返回浮点数,可以使用float数据类型变量存储该传感器的返回值。

    API使用说明

  • 有一部分传感器有设置检测范围(也称为校准)的API,例如声音强度传感器中的 SetDetectRange(unsigned char max_value, unsigned char min_value, unsigned char sensorChannel) ,max_value传入最大值,min_value传入最小值,这里最大值最小值指的是对传感器检测范围进行调整,检测最大范围改为默认检测范围时的max_value,检测最小范围改为默认检测范围时的min_value,例如:没有设置检测范围时,假设检测120分贝的声音时结果为100,检测90分贝的声音时结果为50,检测70分贝的声音时结果为20,当 Sensor_Sound.SetDetectRange(50, 20, 1); 后,检测120分贝的声音时结果为100,检测90分贝的声音时结果为100,检测70分贝的声音时结果为0;

    Tbot-I系统编程模板

    1. #include <bell_thunder.h>
    2. /*************************************************************
    3. * @brief: thunder系统相关配置
    4. *************************************************************/
    5. void setup()
    6. {
    7. Bell_Thunder.Setup_All();
    8. Bell_Thunder.Set_Ble_Type(BLE_TYPE_CLIENT);
    9. Motor_Servo.Servo_Turn(1, 90);
    10. Motor_Servo.Servo_Turn(2, 90);
    11. }
    12. void loop()
    13. {
    14. Programs_System();
    15. vTaskDelay(pdMS_TO_TICKS(10));
    16. }
    17. // 系统参数thunder_system_parameter 为赛事时,启动Program_AutoCtrl,此环节蓝牙遥控器不能遥控
    18. void Program_AutoCtrl() {}
    19. // ThunderGo依赖于此程序,开机后切换为ThunderGo模式时,执行该程序
    20. void Program_ThunderGo()
    21. {
    22. Bell_Thunder.Set_Ble_Type(BLE_TYPE_SERVER);
    23. Bell_Thunder.Set_Need_Communication(true);
    24. }
    25. /*************************************************************
    26. * @brief: thunder用户程序的启动代码,只在用户程序启动时执行一次
    27. * 一般在此过程创建用户线程,用户程序最多4个,分别为Program_1、
    28. * Program_2、Program_3、Program_4
    29. *************************************************************/
    30. void Program_1()
    31. {
    32. // 创建一个任务
    33. System_Task.Create_New_Loop(PROGRAM_USER_1, setup_1_1, loop_1_1);
    34. }
    35. void Program_2() {}
    36. void Program_3() {}
    37. void Program_4() {}
    38. /*************************************************************
    39. * @brief: thunder用户线程
    40. *************************************************************/
    41. void setup_1_1()
    42. {
    43. // 任务初始化设置函数,在这里添加任务的初始化设置
    44. }
    45. void loop_1_1()
    46. {
    47. // 任务运行函数,在这里添加任务的运行代码
    48. }