12 changed files with 72 additions and 310 deletions
-
245sh/iflytool.sh
-
1sh/iflytool.sh
-
5src/configs/gconfig.hpp
-
12src/main.cpp
-
4src/service/device_io_service.hpp
-
6src/service/light_control_service.hpp
-
3src/service/main_control_service.cpp
-
6src/service/main_control_service.hpp
-
4src/service/report_service.hpp
-
2src/test/test_H8922S_gps_info_reader.cpp
-
2src/test/test_iflytop_voice.cpp
-
2src/test/test_soundbox4mic_voice_processer.cpp
@ -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 |
@ -0,0 +1 @@ |
|||
../buildtools/iflytool.sh |
Write
Preview
Loading…
Cancel
Save
Reference in new issue