美文网首页
C#工作相关

C#工作相关

作者: J_HX | 来源:发表于2021-11-16 09:44 被阅读0次

    无锡先导项目eol检测设备

    无锡先导项目eol检测设备
    mes对接


    1优化导出excel(加快导出)
    2 北京新增界面嵌入
    qyjz@DESKTOP-60TVBCT MINGW32 ~
    cd /c/Users/qyjz/Desktop/软件框架 qyjz@DESKTOP-60TVBCT MINGW32 ~/Desktop/软件框架 git clone
    http://192.168.1.231:10101/r/SafetyStandardFrame.git

    1. gitlib代码管理系统搭建
      导出检测报告excel优化
      手动界面继电器界面优化 (xml)
      软件闪退问题优化
      新增底层代码逻辑编写
      s71500 plc对接
      保定继电器问题修改 if (!CheckRelayComStatus()) return null;
      你保定电池包检测eol项目 eol 安规静态
      先导eol项目 2台
      春风动力eol项目 电机/ecu电机控制器检测 2台
      昂华中华国际项目现场出差调试
      泰州蜂巢安规静态eol项目 1台
      陕汽epc项目 电机/整车/高低压eol 3台
      北京售后中心项目演示代码合并和优化
      一汽解放高压线束项目 1 台
      上海君屹安规静态项目调试 1台


    11.2 一汽项目远程调试
    {

    1. 19053 通道添加
    2. bt3523 内阻仪 自动量程配置 AUT ON
    3. 19572 接地电阻线路问题排查 FAL 是四线制 三个线路通 1个不通
      }

    陕汽车EPC
    19073 模式设置不上 上下限量程配置偏大 设置量程数值偏大 代码--- 校验码方法报错误


    11.1

    拓斯达的软件设计说明书
    利元亨软件设计说明书
    拓斯达的模组软件设计开发
    拓斯达&利元亨 模组采集检测系统
    利元亨的软件设计图
    https://www.processon.com/?utm_source=baidu&utm_medium=sem&utm_term=120476031232&utm_content=29214447710&uc_pagenum=1&uc_adposition=cl1&renqun_youhua=2184313&bd_vid=8762512271433439462 思维导图工具
    底层框架开发
    新增模组数量总数编辑
    新增模组手动检测技术功能 设置模组序号 实现漏测 重测数据更新
    新增汇总报表功能 (一行6个) 自动排序向下排序罗列功能
    {
    字典数组结构
    赋值数据问题 ---- 对同一对象操作问题修改
    生成mes数据结构
    提前生成汇总报告功能 -- 生成之后复位 计数从1开始计数
    控制模组计数是否计数功能
    编辑当前序号功能 双击 编辑序号 从第几个序号开始计数
    测试完成后提示漏测 是否生成汇总数据报告
    加了一个右击查看显示汇总报告功能
    }


    11.12模组项目
    -===========
    10K 电阻 为 25度
    1k电阻为2.5度
    1欧姆电阻 = 0.0025设施度
    遇到问题:ntc 采集器 需要输入0-5V 电压 获取报文
    020mA、420mA、0±1A、0±5A可选
    0~±75mV 、0~±100mV、 0~±150mV可选
    0±5VDC、0±10VDC、0~±500VDC可选
    日志优化 在自动列表内右击显示日志
    IO继电器板 串口通讯软件优化
    zlg底层优化 软件闪退问题 添加防错接收

    利元亨:
    1, 拓斯达
    扫码一个通道 扫码一次 启动弹框一次 18个模组 6个单体 {实时显示电压 电流 温度 画界面 待定}
    仪器底层逻辑编写 34980A 底层代码
    手动模组检测逻辑计数 {应用数据结构 字典套数组 定制 漏测、重测、生成汇总数据报告}

    整车控制器 资料
    1.VCU CAN通讯协议 整车CAN报文上报
    测试功能及测试项 :例如:VCU休眠唤醒报文、手刹信号报文、油门踏板信号采集报文、制动踏板信号采集报文、空调ac开关信号采集报文、等等通讯信号采集相关报文
    文档

    1. UDS诊断协议相关 (例如 :读取软硬件版本号)
      3 DTC信号相关文档

    电机控制器 资料
    1 .CAN通讯协议报文文档 { 测试功能及测试项 例如 : ECU 唤醒休眠指令报文、}

    1. UDS 诊断协议相关(例如 :读取软硬件版本号)
      3 DTC信号相关文档

    光束项目 BMS刷写项目

    遇到问题:ntc 采集器 需要输入0-5V 电压 获取报文
    020mA、420mA、0±1A、0±5A可选
    0~±75mV 、0~±100mV、 0~±150mV可选
    0±5VDC、0±10VDC、0~±500VDC可选
    日志优化 在自动列表内右击显示日志
    IO继电器板 串口通讯软件优化
    zlg底层优化 软件闪退问题 添加防错接收遇到问题:ntc 采集器 需要输入0-5V 电压 获取报文
    020mA、420mA、0±1A、0±5A可选
    0~±75mV 、0~±100mV、 0~±150mV可选
    0±5VDC、0±10VDC、0~±500VDC可选
    日志优化 在自动列表内右击显示日志
    IO继电器板 串口通讯软件优化
    zlg底层优化 软件闪退问题 添加防错接收
    {
    CAN/CANFD 区分
    对比传统CAN数据帧,CAN FD共享相同的CAN ID,包括扩展数据帧的ID。
    CAN FD用RRS bit(始终为显性位‘0’)代替RTR。
    FDF(FD format)表示CAN FD还是传统CAN数据帧:
    · FDF – ‘0’ --> 传统CAN数据帧
    · FDF – ‘1’--> CAN FD数据帧
    BRS(Bit Rate Switch)表示时钟频率的切换:
    · BRS – ‘1’-->时钟频率切换
    ESI(Error State Indicator)表示CAN总线的错误状态。

    1. DLC控制域(control Field)
      DLC用于表示数据帧的数据长度。并且支持传统CAN 数据帧的编码方式
      CAN总线由于位填充规则对CRC的干扰,造成错帧漏检率未达到设计意图。CAN FD对CRC算法做了改变,即CRC以含填充位的位流进行计算。在校验和部分为避免再有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码。作为格式检查,如果填充位不是上一位的反码,就作出错处理。CAN FD的CRC场扩展到了21位。
      对比传统CAN的数据帧,CAN FD在控制场新添加EDL位、BRS位、ESI位,采用了新的DLC编码方式、新的CRC算法(CRC场扩展到21位)。
      帧类型,标准帧为0;扩展帧为1
      ///功能描述:根据帧类型生成CANID CANID
      ///编写描述:youchao_2020.09.22
      /// </summary>
      /// <param name="id">ID</param>
      /// <param name="eff">帧类型,标准帧为0;扩展帧为1</param>
      /// <param name="rtr">远程帧</param>
      /// <param name="err">错误帧</param>
      ====
      https://blog.csdn.net/qq_41256212/article/details/95080176 相关资料

    ========================================================================================

    其中CAN ID标识这具体ECU的识别号,长度有11位和29位之分,具体看OEM在诊断需求规范中定义。数据库携带数据长度看是Classical CAN还是CAN FD。前者数据域长度是8 bytes。CAN FD数据域长度看OEM需求,范围在8 bytes---64 bytes,当然长度也不是任意选取,可参看如下表格:

    8的字节 进行数据解包 发送 组包 FF FC CF

    00前四个 00 后四
    can canfd
    4种帧
    单帧 多帧
    首帧 - > 请求 连续帧 - > 流控帧

    CAN帧最长是8位
    高4 bits为0标志是单帧,低4 bits值定义帧长度
    00 00 00 00 是单帧 低4个位 00 00 00 00 是帧长度
    对于单帧 数据长度大于8个字节(CANFD)第一个字节为0 第二个字节数值标志着此单帧数据长度
    一个CAN-FD帧的数据域中可能存在的字节数量为1-8, 12, 16, 20, 24, 32, 48 ,64。数据长度由帧格式中的DLC字段决定。在DLC从0到8时,DL(数据长度)值也是从0到8逐渐加1增长。但是对于DLC大于8的情况,CAN将所有DL都当作8处理,CAN-FD的DL与DLC的对照关系如下表所示。

    https://zhuanlan.zhihu.com/p/265267741 //相关资料
    }
    ======================================================================================== {
    11.16
    RSA 加密解密过程
    加密 - > 字符串明文 -> 通过Encoding指定不哦那个的代码页,把字符串转成不同代码页对应的编程,表现未byte[] - > byte[] 字节流明文->加密操作- >密文byte[]
    解密 字符串明文->使用加密时Encoding使用的代码页,把byte[] 形式的明文转换成适当字符串明文->byte[]字节流明文->pfx证书 -加密操作 -密文byte[]
    /// RSA加密
    /// </summary>
    /// <param name="publickey"></param>
    /// <param name="content"></param>
    /// <returns></returns>
    public static string RSAEncrypt(string publickey, string content)
    {
    publickey = @"<RSAKeyValue><Modulus>5m9m14XH3oqLJ8bNGw9e4rGpXpcktv9MSkHSVFVMjHbfv+SJ5v0ubqQxa5YjLN4vc49z7SVju8s0X4gZ6AzZTn06jzWOgyPRV54Q4I0DCYadWW4Ze3e+BOtwgVU1Og3qHKn8vygoj40J6U85Z/PTJu3hN1m75Zr195ju7g9v4Hk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
    byte[] cipherbytes;
    rsa.FromXmlString(publickey);
    cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(content), false);

            return Convert.ToBase64String(cipherbytes);
        }
    
        /// <summary>
        /// RSA解密
        /// </summary>
        /// <param name="privatekey"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static string RSADecrypt(string privatekey, string content)
        {
            privatekey = @"<RSAKeyValue><Modulus>5m9m14XH3oqLJ8bNGw9e4rGpXpcktv9MSkHSVFVMjHbfv+SJ5v0ubqQxa5YjLN4vc49z7SVju8s0X4gZ6AzZTn06jzWOgyPRV54Q4I0DCYadWW4Ze3e+BOtwgVU1Og3qHKn8vygoj40J6U85Z/PTJu3hN1m75Zr195ju7g9v4Hk=</Modulus><Exponent>AQAB</Exponent><P>/hf2dnK7rNfl3lbqghWcpFdu778hUpIEBixCDL5WiBtpkZdpSw90aERmHJYaW2RGvGRi6zSftLh00KHsPcNUMw==</P><Q>6Cn/jOLrPapDTEp1Fkq+uz++1Do0eeX7HYqi9rY29CqShzCeI7LEYOoSwYuAJ3xA/DuCdQENPSoJ9KFbO4Wsow==</Q><DP>ga1rHIJro8e/yhxjrKYo/nqc5ICQGhrpMNlPkD9n3CjZVPOISkWF7FzUHEzDANeJfkZhcZa21z24aG3rKo5Qnw==</DP><DQ>MNGsCB8rYlMsRZ2ek2pyQwO7h/sZT8y5ilO9wu08Dwnot/7UMiOEQfDWstY3w5XQQHnvC9WFyCfP4h4QBissyw==</DQ><InverseQ>EG02S7SADhH1EVT9DD0Z62Y0uY7gIYvxX/uq+IzKSCwB8M2G7Qv9xgZQaQlLpCaeKbux3Y59hHM+KpamGL19Kg==</InverseQ><D>vmaYHEbPAgOJvaEXQl+t8DQKFT1fudEysTy31LTyXjGu6XiltXXHUuZaa2IPyHgBz0Nd7znwsW/S44iql0Fen1kzKioEL3svANui63O3o5xdDeExVM6zOf1wUUh/oldovPweChyoAdMtUzgvCbJk1sYDJf++Nr0FeNW1RB1XG30=</D></RSAKeyValue>";
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            byte[] cipherbytes;
            rsa.FromXmlString(privatekey);
            cipherbytes = rsa.Decrypt(Convert.FromBase64String(content), false);
    
            return Encoding.UTF8.GetString(cipherbytes);
        }
    

    }

    相关文章

      网友评论

          本文标题:C#工作相关

          本文链接:https://www.haomeiwen.com/subject/tlxhtrtx.html