asrpro cpp文件包含

问题 放入myLib 文件下,经常产生cpp的函数实现,无法被找到 产生错误 ld return xxxx

注意 有两个项目 一个 offline_asr_sample 一个 cwsl_sample 两个不同;

处理方法

1.在asr_pro_sdk\projects\offline_asr_sample\project_file\source_file.prj 下添加相应的cpp文件地址

如下

source-file: ../myLib/test.cpp

源文件包含的地址为asr_pro_sdk\projects ;myLib 在上一层,从而需要添加 ../

2 先编辑项目

查看 asr_pro_sdk\projects\offline_asr_sample\project_file\build\source_file.mk

内是否包含了相应的自定义的文件

查看 \asrpro\asr_pro_sdk\projects\offline_asr_sample\project_file\build\objs下是否生成了相应的.O文件 

3.重新 ./rebuild 一下,否则修改的未必被正确编辑入.0文件中

h文件 test.h

#ifndef __MYTEST
#define __MYTEST

class mytest
{
	public:
	void test();
	int num = 0;
	int test2();


};
#endif

cpp文件 test.cpp

#include "test.h"
#include "HardwareSerial.h"
void mytest::test()
{
	//uint8 t = 10;
	Serial.print("mytest");
}

int mytest::test2()
{
	num ++;
	return num;
}

主文件

#include "asr.h"
extern "C"{ void * __dso_handle = 0 ;}
#include "setup.h"
#include "HardwareSerial.h"
#include "test.h"

uint32_t snid;
void ASR_CODE();
void app();
mytest test;

//{speak:小蝶-清新女声,vol:10,speed:10,platform:haohaodada}
//{playid:10001,voice:欢迎使用语音助手,用天问五幺唤醒我。}
//{playid:10002,voice:我退下了,用天问五幺唤醒我}

/*描述该功能...
*/
void ASR_CODE(){
  //语音识别功能框,与语音识别成功时被自动调用一次。
  set_state_enter_wakeup(15000);
  switch (snid) {
   case 0:
    Serial.print("hello");
    break;
   case 1:
    digitalWrite(4,0);
    Serial.print("on");
    break;
   case 2:
    digitalWrite(4,1);
    Serial.print("off");
    break;
  }

}

void app(){
  //操作系统的一个线程,独立主循环任务,可支持多个类似线程任务。
  //当存在多个线程任务时,注意优先级与占用内存设置。
  while (1) {
    test.test();
    Serial.println("hello");
  
    delay(100);
  }
  vTaskDelete(NULL);
}

void hardware_init(){
  //需要操作系统启动后初始化的内容
  vol_set(7);
  setPinFun(13,SECOND_FUNCTION);
  setPinFun(14,SECOND_FUNCTION);
  Serial.begin(9600);
  Serial.println("hello");
  xTaskCreate(app,"app",128,NULL,4,NULL);
  vTaskDelete(NULL);
}

void setup()
{
  //需要操作系统启动前初始化的内容
  //{ID:0,keyword:"唤醒词",ASR:"天问五幺",ASRTO:"我在呢"}
  //{ID:1,keyword:"命令词",ASR:"打开继电器",ASRTO:"已经打开继电器"}
  //{ID:2,keyword:"命令词",ASR:"关闭继电器",ASRTO:"已经关闭继电器"}
  setPinFun(4,FIRST_FUNCTION);
  pinMode(4,output);
  digitalWrite(4,0);
}

在asr中包含头文件 注意  ../ ; mylib 还是直接 #include "test.h"

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值