Files
IRIS_FODIS/pack_deb.sh
xin 60559291f2 V1.1 正式版本提交
主要新增功能:
1. 添加 Debian 打包脚本 (pack_deb.sh),支持一键打包部署
2. 新增机顶辐照度使用说明书 (README.md),记录系统配置和使用方法
3. 添加 SD 卡配置更新功能 (configdatairis 文件夹),便于现场配置
4. 新增光谱仪打开失败检测,两灯同时闪烁提示异常
5. 添加说明书自动拷贝到 SD 卡功能

详细修改:
- main.cpp:
  * 添加 SD 卡 configdatairis 配置更新逻辑
  * 添加说明书自动拷贝到 /home/data/
  * 优化 stopwait.txt 判断逻辑

- Source/Capture/MainGrabber.cpp:
  * 添加光谱仪初始化失败检测,失败时两灯同时闪烁

- Source/Logger/Logger.h:
  * 添加日志功能支持

- pack_deb.sh:
  * 新增完整的 Debian 打包脚本
  * 支持自动构建、复制文件、生成 postinst/prerm

- root/start.sh:
  * 添加 mkdir 确保 /home/data 目录存在

- root/DCTable.txt:
  * 添加默认暗电流校准表文件

- README.md:
  * 编写完整的中文使用说明书
  * 包含硬件连接、目录结构、配置说明、GPIO 指示灯含义等

依赖文件:
- /root/DeviceSettings.ini (需另行配置)
- /root/机顶辐照度使用说明书.md (打包时自动复制)
2026-03-23 14:32:12 +08:00

137 lines
3.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# IRIS_FODIS 项目打包脚本
# 打包成 Debian 包
VERSION=1.1
PROJECT_NAME="iris-fodis"
PACKAGE_NAME="${PROJECT_NAME}_V${VERSION}.deb"
BUILD_DIR="build"
DEB_DIR="Debpack_iris_fodis"
# 检查是否在正确目录
if [ ! -f "CMakeLists.txt" ]; then
echo "错误:请在项目根目录运行此脚本"
exit 1
fi
echo "========================================="
echo "IRIS_FODIS 打包脚本 v${VERSION}"
echo "========================================="
# 1. 构建项目
echo ""
echo "[1/5] 开始构建项目..."
# 清理旧的 build 目录并重新创建
#rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
cd $BUILD_DIR
cmake ..
#if [ $? -ne 0 ]; then
# echo "错误cmake 配置失败"
# exit 1
#fi
# 执行 make
make -j$(nproc)
if [ $? -ne 0 ]; then
echo "错误:构建失败"
exit 1
fi
cd ..
# 检查构建产物
if [ ! -f "${BUILD_DIR}/IRIS_FODIS" ]; then
echo "错误:构建产物不存在"
exit 1
fi
echo "构建完成"
# 2. 创建打包目录
echo ""
echo "[2/5] 创建打包目录..."
rm -rf $DEB_DIR
mkdir -p $DEB_DIR
# 3. 复制可执行文件和脚本文件
echo ""
echo "[3/5] 复制文件..."
mkdir -p ${DEB_DIR}/home/pi/bin
cp ${BUILD_DIR}/IRIS_FODIS ${DEB_DIR}/home/pi/bin/
chmod +x ${DEB_DIR}/home/pi/bin/IRIS_FODIS
# 复制启动脚本和配置文件到 /root/
mkdir -p ${DEB_DIR}/root
cp root/start.sh ${DEB_DIR}/root/
cp Settings/DeviceSettings.ini ${DEB_DIR}/root/
cp root/DCTable.txt ${DEB_DIR}/root/
cp README.md ${DEB_DIR}/root/机顶辐照度使用说明书.md
chmod +x ${DEB_DIR}/root/start.sh
# 4. 创建 DEBIAN 目录和配置文件
echo ""
echo "[4/5] 创建 DEBIAN 配置..."
mkdir -p ${DEB_DIR}/DEBIAN
# 创建 control 文件
cat > ${DEB_DIR}/DEBIAN/control <<EOF
Package: iris-fodis
Version: ${VERSION}
Architecture: armhf
Maintainer: iris-fodis Team
Description: IRIS Fiber Optic Spectrometer Data Acquisition System
EOF
# 创建 postinst 脚本(安装后执行)
cat > ${DEB_DIR}/DEBIAN/postinst <<EOF
#!/bin/bash
echo "IRIS_FODIS v${VERSION} installed"
chmod +x /home/pi/bin/IRIS_FODIS
chmod +x /root/start.sh
# 确保 SD 卡挂载后再写入 version
mkdir -p /home/data
if [ -b /dev/mmcblk1p1 ]; then
if ! mount | grep -q "/dev/mmcblk1p1 on /home/data"; then
mount /dev/mmcblk1p1 /home/data
fi
if mount | grep -q "/dev/mmcblk1p1 on /home/data"; then
echo "V${VERSION}" > /home/data/version
fi
fi
exit 0
EOF
# 创建 prerm 脚本(删除前执行)
cat > ${DEB_DIR}/DEBIAN/prerm <<EOF
#!/bin/bash
exit 0
EOF
chmod +x ${DEB_DIR}/DEBIAN/postinst
chmod +x ${DEB_DIR}/DEBIAN/prerm
# 5. 打包
echo ""
echo "[5/5] 打包成 deb 文件..."
sudo dpkg -b $DEB_DIR $PACKAGE_NAME
if [ $? -eq 0 ]; then
echo ""
echo "========================================="
echo "打包成功: ${PACKAGE_NAME}"
echo "========================================="
# 移动到 DEB 目录
mkdir -p DEB
mv $PACKAGE_NAME DEB/
echo "已移动到: DEB/${PACKAGE_NAME}"
# 清理临时目录
rm -rf $DEB_DIR
else
echo "错误:打包失败"
exit 1
fi