当前位置: 首页 > wzjs >正文

从化建网站免费网站安全软件大全

从化建网站,免费网站安全软件大全,攀枝花网站开发,中文 wordpress2025年6月21-22日工作日志 一、主要工作内容 诊断函数封装与优化 初步完成了EMERGENCY_AUXILIARY_PROPULSION类的封装,统一管理主推进器的诊断逻辑和阈值配置。 实现功能: 时序检查:封装checkOutputTiming和checkFeedbackTiming,…

2025年6月21-22日工作日志


一、主要工作内容

  1. 诊断函数封装与优化

    • 初步完成了EMERGENCY_AUXILIARY_PROPULSION类的封装,统一管理主推进器的诊断逻辑和阈值配置。

    • 实现功能:

      • 时序检查:封装checkOutputTimingcheckFeedbackTiming,支持动态阈值配置。
      • 状态诊断:完成RPM、电压、电流、温度等参数的解析与状态检查(如checkRPMStatuscheckVoltageStatus)。
      • 故障检测:封装补偿器液位、伸缩机构状态、接近开关等故障检测逻辑(如checkFaultBits1Status)。
    • 新增功能:

      • 支持通过set/get方法动态调整阈值(如setTimingThresholds)。

      • 提供数据解析工具函数(如parseRPMparseVoltage)。

        #pragma once#include <cstdint>
        #include <string>
        #include <array>class MAIN_PROPULSION_CAN {
        public:// 阈值配置结构体struct TimingThresholds {int64_t output_no_response;    // 无输出阈值(微秒)int64_t output_too_fast;      // 输出过快阈值(微秒)int64_t output_too_slow;      // 输出过慢阈值(微秒)int64_t feedback_normal;      // 反馈正常阈值(微秒)int64_t feedback_slow;       // 反馈较慢阈值(微秒)int64_t feedback_no_response; // 无反馈阈值(微秒)};struct RPMThresholds {int16_t min_rpm;            // 最小转速int16_t max_rpm;            // 最大转速bool allow_negative;        // 是否允许负转速
        };struct VoltageThresholds {uint16_t min_voltage;      // 最小电压值 (0V)uint16_t max_voltage;      // 最大电压值 (根据实际系统设置)uint16_t high_voltage_threshold; // 高电压阈值
        };struct CurrentThresholds {uint16_t max_current;      // 最大电流值 (255A)
        };struct TemperatureThresholds {uint8_t max_motor_temp;    // 电机最高温度 (150℃)uint8_t max_driver_temp;   // 驱动器最高温度 (150℃)
        };// 阈值设置
        static void setTimingThresholds(const TimingThresholds& thresholds);
        static void setRPMThresholds(const RPMThresholds& thresholds);
        static void setVoltageThresholds(const VoltageThresholds& thresholds);
        static void setCurrentThresholds(const CurrentThresholds& thresholds);
        static void setTemperatureThresholds(const TemperatureThresholds& thresholds);// 阈值获取
        static TimingThresholds getCurrentThresholds();
        static RPMThresholds getCurrentRPMThresholds();
        static VoltageThresholds getCurrentVoltageThresholds();
        static CurrentThresholds getCurrentCurrentThresholds();
        static TemperatureThresholds getCurrentTemperatureThresholds();// 状态检查
        static int checkOutputTiming(int64_t timeInterval);
        static int checkFeedbackTiming(int64_t timeBack);
        static bool checkRPM(int16_t rpm, std::string& message);
        static int checkRPMStatus(const uint8_t* data, size_t offset);// 数据解析
        static int16_t parseRPM(const uint8_t* data, size_t offset);
        static uint16_t parseVoltage(const uint8_t data[], size_t offset);
        static uint8_t parseCurrent(const uint8_t data[], size_t offset);
        static uint8_t parseMotorTemperature(const uint8_t data[], size_t offset);
        static uint8_t parseDriverTemperature(const uint8_t data[], size_t offset);// 状态检查
        static int checkVoltageStatus(const uint8_t data[], size_t offset);
        static int checkCurrentStatus(const uint8_t data[], size_t offset);
        static int checkMotorTempStatus(const uint8_t data[],size_t motor_temp_offset);
        static int checkDriverTempStatus(const uint8_t data[],size_t driver_temp_offset);//320223
        // 状态反馈帧处理
        static uint8_t parseCompensatorLevel(const uint8_t* data, size_t offset);
        static uint8_t parseExtensionStatus(const uint8_t* data, size_t offset);
        static uint8_t parseProximitySwitches(const uint8_t* data, size_t offset);
        static uint8_t parseFaultBits1(const uint8_t* data, size_t offset);
        static uint8_t parseFaultBits2(const uint8_t* data, size_t offset);// 状态检查
        static int checkCompensatorLevelStatus(const uint8_t* data, size_t offset);
        static int checkExtensionStatus(const uint8_t* data, size_t offset);
        static int checkProximitySwitchesStatus(const uint8_t* data, size_t offset);
        static int checkFaultBits1Status(const uint8_t* data, size_t offset);
        static int checkFaultBits2Status(const uint8_t* data, size_t offset);private:static TimingThresholds currentTimingThresholds;static RPMThresholds currentRPMThresholds;static VoltageThresholds currentVoltageThresholds;static CurrentThresholds currentCurrentThresholds;static TemperatureThresholds currentTemperatureThresholds;
        };
        
  2. 辅助推进器与应急推进器封装

    • 初步完成EMERGENCY_AUXILIARY_PROPULSION_CAN类的封装。
    • 复用主推进器的诊断逻辑,调整部分阈值和状态检查规则(如应急推进器的RPM允许范围更广)。
  3. 代码可移植性改进

    • 将硬件相关参数(如CAN接口名称、缓冲区大小)通过常量定义集中管理。
    • 使用标准C++库(如<array><chrono>)替代平台特定代码。

二、代码修改示例(关键部分)

1. 诊断函数调用优化
// 原代码(分散调用)
Result_Buffer[i][packetIndex][8] = checkRPMStatus(g1_packet_buffer[i][packetIndex].data(), 26);
Result_Buffer[i][packetIndex][14] = checkVoltageStatus(g1_packet_buffer[i][packetIndex].data(), 30);// 封装后(通过类方法调用)
Result_Buffer[i][packetIndex][8] = MAIN_PROPULSION_CAN::checkRPMStatus(data, offset);
Result_Buffer[i][packetIndex][14] = MAIN_PROPULSION_CAN::checkVoltageStatus(data, offset);
2. 阈值动态配置示例
// 动态调整主推进器RPM阈值
MAIN_PROPULSION_CAN::RPMThresholds rpmThresholds = {-3000, 3000, true};
MAIN_PROPULSION_CAN::setRPMThresholds(rpmThresholds);

三、存在问题与下一步计划

  1. 未验证内容

    • 应急推进器封装代码(EMERGENCY_AUXILIARY_PROPULSION_CAN)尚未测试,可能存在阈值或解析逻辑错误。
    • 多线程环境下阈值动态调整的线程安全性需验证。
  2. 下一步任务

    • 验证可行性
      • 搭建测试环境,模拟CAN数据输入,验证应急推进器诊断逻辑的正确性。
      • 检查动态阈值修改是否实时生效。
    • 性能测试
      • 评估高负载下缓冲区(g_packet_buffer)的处理延迟。
    • 日志增强
      • 在诊断函数中添加详细错误日志输出,便于问题追踪。

四、其他备注

  • 提交代码至Git仓库,分支:feature/diagnostic-encapsulation
  • 进一步验证可行性。

作者wjj
联系方式:1816387198@qq.com


凡人修仙传:总会有办法的,他们世世代代生活在这里,毕竟凡人最擅长的就是坚强的活着。


http://www.dtcms.com/wzjs/365731.html

相关文章:

  • 传媒公司做网站条件官网首页入口百度
  • 自己做的网站如何调入dede搜索排行
  • 学网站开发哪里好北京seo培训机构
  • 广东建泰建设有限公司网站怎样做公司网站推广
  • wordpress多色主题石家庄百度关键词优化
  • 怎样用FW做网站的首页百度图片搜索引擎
  • 福州做网站建设棋牌软件制作开发多少钱
  • 公众号做网站企业如何进行网络营销
  • 网站群管理平台方案百度搜索量查询
  • 珠海做网站推广公司搜索引擎关键词竞价排名
  • 有没有学做ppt发网站或论坛互联网营销培训课程
  • 平面设计国外网站以图搜图
  • 如何自己做网站优化惠州搜索引擎seo
  • 网站建设发布教程视频教程全网网络营销推广
  • 网站导航图怎么做网络营销案例
  • b2c网站要注册什么公司百度关键词搜索排名多少钱
  • 阳泉做网站多少钱网页制作软件推荐
  • 仿hao123的导航网站纯静态版|html导航网站源码营销策划思路及方案
  • 学做衣服的网站python培训
  • 西安市建设工程信息网编标工具seo推广的特点
  • 外国字体网站百度seo查询工具
  • wordpress插件采集好不好杭州seo推广排名稳定
  • 做长图文网站郑州seo团队
  • 智能网站建设维护软件关键词推广软件
  • 免费元素素材网站广州seo优化费用
  • 网络营销的主要内容是什么重庆seo全网营销
  • 海口网站建设咨询小网站广告投放
  • 长沙公司制作网站费用百度官网链接
  • 江门网站建设设计厦门网站建设
  • b2b网站策划方案郑州百度推广托管