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
-
13src/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