Browse Source

update

master
zhaohe 2 years ago
parent
commit
bd1fb9cd3b
  1. 245
      sh/iflytool.sh
  2. 1
      sh/iflytool.sh
  3. 5
      src/configs/gconfig.hpp
  4. 12
      src/main.cpp
  5. 4
      src/service/device_io_service.hpp
  6. 6
      src/service/light_control_service.hpp
  7. 3
      src/service/main_control_service.cpp
  8. 6
      src/service/main_control_service.hpp
  9. 4
      src/service/report_service.hpp
  10. 2
      src/test/test_H8922S_gps_info_reader.cpp
  11. 2
      src/test/test_iflytop_voice.cpp
  12. 2
      src/test/test_soundbox4mic_voice_processer.cpp

245
sh/iflytool.sh

@ -1,245 +0,0 @@
#!/bin/bash
<<BLOCK
function do_envsetup_pc() {
#构造编译脚本
echo "cmake ../ \\" >${PROJECT_PATH}/build/build.sh
echo "-DCMAKE_C_COMPILER=gcc \\" >>${PROJECT_PATH}/build/build.sh
echo "-DCMAKE_CXX_COMPILER=g++ \\" >>${PROJECT_PATH}/build/build.sh
chmod +x ${PROJECT_PATH}/build/build.sh
}
function do_envsetup_rk3328() {
# 下载交叉编译工具
cd ${PROJECT_PATH}/build
wget -c "ftp://zftpuser:zftpzwsd@192.168.1.2/zwsd/gnu_gcc_release/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz"
tar -xvf "gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz"
# 构造编译脚本
echo "cmake ../ \\" >${PROJECT_PATH}/build/build.sh
echo "-DCMAKE_C_COMPILER=${PROJECT_PATH}/build/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \\" >>${PROJECT_PATH}/build/build.sh
echo "-DCMAKE_CXX_COMPILER=${PROJECT_PATH}/build/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \\" >>${PROJECT_PATH}/build/build.sh
chmod +x ${PROJECT_PATH}/build/build.sh
}
BLOCK
function do_flash_to_targetboard() {
scp -r out/${PROJECT_NAME}.tar.gz ${TARGET_USER}@${IP}:/
#如果存在shutdown.sh,则先执行shutdown.sh
ssh ${TARGET_USER}@${IP} 'if [ -f "/${PROJECT_NAME}/shutdown.sh" ];then /${PROJECT_NAME}/shutdown.sh;fi'
ssh ${TARGET_USER}@${IP} "cd / && tar -xvf app.tar.gz -C /"
ssh ${TARGET_USER}@${IP} "cd / && rm -rf app.tar.gz"
}
function do_flashapp_to_targetboard() {
# 杀死目标程序
set +e
ssh ${TARGET_USER}@${IP} "killall app.out"
set -e
# 拷贝目标程序
scp -r ${PROJECT_PATH}/build/app/*.out ${TARGET_USER}@${IP}:/app/
}
function do_flashwebapp_to_targetboard() {
ssh ${TARGET_USER}@${IP} "rm -rf /webapp"
scp -r ${PROJECT_PATH}/webapp ${TARGET_USER}@${IP}:/app/webapp
}
##############################################################################
#
# Main:
#
##############################################################################
#
# iflytool.sh envsetup rk3328
#
# iflytool.sh --ip 192.168.8.100 build
# iflytool.sh --ip 192.168.8.100 --user root build <packet> <flash> <reboot>
# iflytool.sh --ip 192.168.8.100 --user root ssh_copy_id ssh_clear_id
#
# 解析指令判断指令是否是 envsetup iflytool.sh envsetup rk3328
set -e
is_build=false
is_flash=false
is_reboot=false
is_envsetup=false
is_buildpc=false
export PROJECT_PATH=$(pwd)
for i in "$@"; do
case $i in
envsetup)
is_envsetup=true
shift
;;
build)
is_build=true
shift
;;
flash)
is_flash=true
shift
;;
reboot)
is_reboot=true
shift
;;
packet)
is_packet=true
shift
;;
ssh_copy_id)
is_ssh_copy_id=true
shift
;;
ssh_clear_id)
is_ssh_clear_id=true
shift
;;
flashapp)
is_flashapp=true
shift
;;
flashwebapp)
is_flashwebapp=true
shift
;;
--user)
shift
TARGET_USER=$1
shift
;;
--ip)
shift
IP=$1
shift
;;
buildpc)
is_buildpc=true
shift
;;
*)
# unknown option
;;
esac
done
# 判断是否是envsetup
if [ "$is_envsetup" = true ]; then
echo "mkdir -p ${PROJECT_PATH}/build"
echo "mkdir -p ${PROJECT_PATH}/buildpc"
mkdir -p ${PROJECT_PATH}/build
mkdir -p ${PROJECT_PATH}/buildpc
# 构造环境变量
#从CmakeLists.txt中读取项目名称 project(app)
PROJECT_NAME=$(grep "project(" ${PROJECT_PATH}/CMakeLists.txt)
PROJECT_NAME=${STR#*\(}
PROJECT_NAME=${PROJECT_NAME%\)*}
#从字符串中 project(app)解析出app
STR="project(app)"
PROJECT_NAME=${STR#*\(}
PROJECT_NAME=${PROJECT_NAME%\)*}
echo "PROJECT_NAME=$PROJECT_NAME" >>${PROJECT_PATH}/build/buildenv
echo "PROJECT_NAME=$PROJECT_NAME" >>${PROJECT_PATH}/buildpc/buildenv
${PROJECT_PATH}/sh/envsetup.sh
${PROJECT_PATH}/sh/envsetuppc.sh
echo "envsetup success !"
exit 0
fi
# 如果没有指定用户名,则默认用户名为 root
if [ -z "$TARGET_USER" ]; then
TARGET_USER=root
fi
#如果flash 则默认编译打包
if [ "$is_flash" = true ]; then
is_build=true
is_packet=true
fi
#如果打包,则默认编译
if [ "$is_packet" = true ]; then
is_build=true
fi
#如果部署则默认需要IP
if [ "$is_flash" = true ] || [ "$is_reboot" = true ]; then
if [ -z "$IP" ]; then
echo "please input ip"
exit 1
fi
fi
# flashapp
if [ "$is_flashapp" = true ]; then
is_build=true
fi
# 检查build目录是否存在
if [ ! -d "${PROJECT_PATH}/build" ]; then
echo "build directory not exist, please run envsetup first"
exit 1
fi
# 初始化环境变量
source ${PROJECT_PATH}/build/buildenv
# 编译
if [ "$is_build" = true ]; then
echo "build"
cd ${PROJECT_PATH}/build
# 根据当前电脑线程数,调用make
./build.sh && make -j$(nproc) install
fi
if [ "$is_buildpc" = true ]; then
echo "buildpc"
cd ${PROJECT_PATH}/buildpc
# 根据当前电脑线程数,调用make
./build.sh && make -j$(nproc) install
fi
# 打包
if [ "$is_packet" = true ]; then
cd ${PROJECT_PATH}
${PROJECT_PATH}/sh/packet.sh
fi
# 部署
if [ "$is_flash" = true ]; then
do_flash_to_targetboard
fi
# flashapp
if [ "$is_flashapp" = true ]; then
do_flashapp_to_targetboard
fi
# flashwebapp
if [ "$is_flashwebapp" = true ]; then
do_flashwebapp_to_targetboard
fi
# 重启
if [ "$is_reboot" = true ]; then
ssh ${TARGET_USER}@${IP} "reboot"
fi
#ssh_copy_id
if [ "$is_ssh_copy_id" = true ]; then
ssh-copy-id ${TARGET_USER}@${IP}
fi
#ssh_clear_id
if [ "$is_ssh_clear_id" = true ]; then
ssh ${TARGET_USER}@${ip} "rm -rf ~/.ssh/authorized_keys"
fi

1
sh/iflytool.sh

@ -0,0 +1 @@
../buildtools/iflytool.sh

5
src/configs/zconfig.hpp → src/configs/gconfig.hpp

@ -23,9 +23,10 @@
marco(string /* */, wakeup_module_path, "xiaomaoxiaomao/xiaomaoxiaomao.pb") /*唤醒词配置*/ \
marco(string /* */, wakeup_lib_module, "./precise/precise-engine") /*唤醒词配置*/ \
marco(string /* */, wakeup_chunk_length, "1280") /*唤醒词配置,对应80ms*/ \
marco(int /* */, wakeup_source, 0.9) /*唤醒词配置*/ \
marco(bool /* */, voice_logger_enable, true) /*是否记录语音配置*/ \
marco(string /* */, aiui_appid, "5938b7c7") /*aiui*/ \
marco(string /* */, aiui_appkey, "19c1f7becc78eedc7826b485aabe30de") /*aiui*/ \
marco(string /* */, aiui_appkey, "") /*aiui*/ \
marco(string /* */, aiui_auth_id, "ac30105366ea460f9ff08ddac0c4f71e") /*aiui:产品未量产前使用次ID*/ \
marco(string /* */, aiui_scene, "main_box") /*aiui*/ \
marco(string /* */, device_io_uart_path, "/dev/ttyUSB1") /*唤醒词配置,对应50ms*/ \
@ -37,6 +38,6 @@
marco(int /* */, lightAutoCloseMin, 0) /**/
configTemplateDEFILE_CONFIG_SERVICE2( //
ZConfig, //
GConfig, //
ConfigELEMENT_LIST, //
"./configs/config.json", {});

12
src/main.cpp

@ -8,7 +8,7 @@
#include "zlinuxcomponents/alsaplayer/smart_soundbox_player.hpp"
#include "zlinuxcomponents/zmainhelper.hpp"
//
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
#include "iflytopcpp/core/thread/thread.hpp"
#include "version.hpp"
@ -95,9 +95,9 @@ void Main::appSetup(int argc, char *argv[]) {
// BUILD_AND_REG_SERRVICE(Config);
logger->info("build {}.....", "Config");
BUILD_AND_REG_SERRVICE(ZConfig);
GET_SERVICE(ZConfig)->initialize();
if (!g_device_id.empty()) GET_SERVICE(ZConfig)->set_deviceId(g_device_id);
BUILD_AND_REG_SERRVICE(GConfig);
GET_SERVICE(GConfig)->initialize();
if (!g_device_id.empty()) GET_SERVICE(GConfig)->set_deviceId(g_device_id);
}
void Main::updateRootfs() {
@ -122,7 +122,7 @@ void Main::buildDeviceIOService() {
/**
* @brief DeviceIOService初始化
*/
auto config = GET_SERVICE(ZConfig);
auto config = GET_SERVICE(GConfig);
#if 1
BUILD_AND_REG_SERRVICE(DeviceIOService);
@ -137,7 +137,7 @@ void Main::buildVoiceProcessService() {
* @brief
*/
auto config = GET_SERVICE(ZConfig);
auto config = GET_SERVICE(GConfig);
BUILD_AND_REG_SERRVICE(Soundbox4micVoicePreProcess);
GET_SERVICE(Soundbox4micVoicePreProcess)->initialize();

4
src/service/device_io_service.hpp

@ -13,10 +13,10 @@
#include <string>
#include <vector>
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
//
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/basic/nod/nod.hpp"
#include "iflytopcpp/core/components/modbus/modbus.hpp"
#include "iflytopcpp/core/thread/thread.hpp"

6
src/service/light_control_service.hpp

@ -13,10 +13,10 @@
#include <string>
#include <vector>
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
//
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/thread/thread.hpp"
#include "service/device_io_service.hpp"
#include "zservice_container/zservice_container.hpp"
@ -35,7 +35,7 @@ using namespace core;
class LightControlService : public enable_shared_from_this<LightControlService> {
ENABLE_LOGGER(LightControlService);
shared_ptr<ZConfig> config;
shared_ptr<GConfig> config;
unique_ptr<Thread> thread;
shared_ptr<DeviceIOService> deviceIoService;

3
src/service/main_control_service.cpp

@ -69,11 +69,13 @@ void MainControlService::initializeVoiceProcess() {
* @brief
*/
m_wakeupProcesser->onWakeupSignal.connect([this](float wakeup_score) {
if (wakeup_score > m_zconfig->get_wakeup_source()) {
logger->info("onWakeupSignal wakeup_score {}", wakeup_score);
/**
* @brief session
*/
m_workQueue->enQueue([this]() { constructSession(); });
}
});
m_aiuiService->onMessage.connect([&](json& rxjson) {
@ -214,6 +216,7 @@ void MainControlService::initialize() {
GET_TO_SERVICE(m_smartSoundboxPlayer);
GET_TO_SERVICE(m_aiuiService);
GET_TO_SERVICE(m_soundbox4micVoicePreProcess);
GET_TO_SERVICE(m_zconfig);
// GET_TO_SERVICE(m_commonVoiceProcesser);

6
src/service/main_control_service.hpp

@ -13,10 +13,10 @@
#include <string>
#include <vector>
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
//
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "service/device_io_service.hpp"
#include "service/voiceprocess/audio_logging_service.hpp"
#include "service/voiceprocess/audio_recoder_service.hpp"
@ -28,6 +28,7 @@
#include "zwebservice/zwebservice.hpp"
//
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/components/jobs/work_queue.hpp"
#include "iflytopcpp/core/components/timer/simple_timer.hpp"
#include "iflytopvoicecpp/soundbox4mic_voice_pre_process.hpp"
@ -55,6 +56,7 @@ class MainControlService : public enable_shared_from_this<MainControlService> {
shared_ptr<ZWebService> m_zwebService;
shared_ptr<DeviceIOService> m_deviceIOService;
shared_ptr<GConfig> m_zconfig;
// shared_ptr<BfWakeupVProcesser> m_beforeWakeupVoiceProcesser;
// shared_ptr<BfAsrVProcesser> m_beforeasrVoiceProcesser;

4
src/service/report_service.hpp

@ -13,7 +13,7 @@
#include <string>
#include <vector>
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
//
#include "iflytopcpp/core/thread/thread.hpp"
@ -38,7 +38,7 @@ using namespace core;
class ReportService : public enable_shared_from_this<ReportService> {
ENABLE_LOGGER(ReportService);
shared_ptr<ZConfig> config;
shared_ptr<GConfig> config;
unique_ptr<Thread> thread;
shared_ptr<DeviceIOService> deviceIoService;

2
src/test/test_H8922S_gps_info_reader.cpp

@ -1,6 +1,6 @@
#include "zlinuxcomponents/zmainhelper.hpp"
//
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
#include "iflytopcpp/core/thread/thread.hpp"
#include "spdlog/spdlog.h"

2
src/test/test_iflytop_voice.cpp

@ -3,7 +3,7 @@
#include "zlinuxcomponents/zmainhelper.hpp"
//
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
#include "iflytopcpp/core/thread/thread.hpp"
#include "spdlog/spdlog.h"

2
src/test/test_soundbox4mic_voice_processer.cpp

@ -1,6 +1,6 @@
#include "zlinuxcomponents/zmainhelper.hpp"
//
#include "configs/zconfig.hpp"
#include "configs/gconfig.hpp"
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
#include "iflytopcpp/core/thread/thread.hpp"
#include "spdlog/spdlog.h"

Loading…
Cancel
Save