转载-浅析UDS诊断

2023-11-18

文章目录
前言
一、诊断和通信管理功能单元

  1. 0x10(DiagnosticSessionControl)
  2. 0x11(ECUReset)
  3. 0x27(SecurityAccess)
  4. 0x28(CommunicationControl)
  5. 0x3E(TesterPresent)
  6. 0x83(AccessTimingParameter)
  7. 0x84(SecuredDataTransmission)
  8. 0x85(ControlDTCSetting)
  9. 0x86(ResponseOnEvent)
  10. 0x87(LinkControl)
    二、数据传输功能单元
  11. 0x22(ReadDataByIdentifier)
  12. 0x23(ReadMemoryByAddress)
  13. 0x24(ReadScalingDataByIdentifier)
  14. 0x2A(ReadDataByPeriodicIdentifier)
  15. 0x2C(DynamicallyDefineDataIdentifier)
  16. 0x2E(WriteDataByIdentifier)
  17. 0x3D(WriteMemoryByAddress)
    三、已存储数据传输功能单元
  18. 0x14(ClearDiagnosticInformation)
  19. 0x19(ReadDTCInformation)
    四、输入输出控制功能单元
  20. 0x2F(InputOutputControlByIdentifier)
    五、例程控制功能单元
  21. 0x31(RoutineControl)
    六、上传下载功能单元
  22. 0x34(RequestDownload)
  23. 0x35(RequestUpload)
  24. 0x36(TransferData)
  25. 0x37(RequestTransferExit)
    附录
    ISO 14229 协议中所有NRC码的汇总:跟我学UDS(ISO14229) ———— NRC码
    跟我学UDS(ISO14229) ———— 0x19 服务参数介绍
    前言
      汽车诊断技术是指在不拆卸车辆的情况下,通过读取车辆在运行过程中所记录的数据或故障码来查明故障元婴,并确定故障部位的汽车应用技术。我们可以通过该技术,快速检测到汽车故障来提高汽车安全性和维修效率。USD协议诊断主要采用“问 - 答”模式,即诊断仪像车辆指定的ECU发送请求(Request),指定的ECU会做出相对应的响应(Response),并将响应返回给诊断仪。从而可以依据定义好的诊断描述文件,就可以将相对应的数据转化为相对应的问题和描述。

一、诊断和通信管理功能单元

  1. 0x10(DiagnosticSessionControl)
      客户端请求控制与服务器的诊断会话。这里是所有诊断命令的基石。也就是说,如果你想完成你的诊断命令的发送与响应,首先需要明白0x10服务的作用。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x10(DiagnosticSessionControl)

  2. 0x11(ECUReset)
      客户端强制服务器执行重置。这里定义了模拟的重置类型。当使用了该命令并且得到了正响应,则整个客户端将会重新进入到DefaultSession模式下。该点在实现自动化的过程中,需要格外的注意。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x11(ECUReset)

  3. 0x27(SecurityAccess)
      客户端请求解锁安全服务器。如果在用于下载/上传的诊断服务例行程序或数据进入服务器并从服务器读取特定的内存位置的情况是可能需要安全访问。 不正确的例程或数据下载到服务器中可能损坏电子设备或其他车辆部件,或冒着车辆遵守排放,安全或安全标准。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x27(SecurityAccess)

  4. 0x28(CommunicationControl)
      客户端请求服务器控制其通信。主要适用于打开/关闭某些消息的发送和/或接收。平时测试过程中,一般只会在需要测试该服务的时候,会对通讯模式进行更改。测试其他模块的时候,一般会将该服务设置为启用传输与接收模式,方便测试。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x28(CommunicationControl)

  5. 0x3E(TesterPresent)
      客户端向服务器指示它仍然活跃。主要适用于维持在某一模式下。例如,我所在的项目中,进入Extended Session 之后,如果没有任何才做,等待4s之后会切换到Default Session。所以,如果需要维持在Extended Session的话,需要向服务器每隔固定的时间发送3E 服务来告诉服务器我还处在活跃的状态,不需要切换到默认模式。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x3E(TesterPresent)

  6. 0x83(AccessTimingParameter)
      客户端使用此服务来读取/修改活动通信的时序参数。这个服务在我的使用过程中没有接触到,所以这里只能提供一些学习内容上的分享。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x83(AccessTimingParameter)

  7. 0x84(SecuredDataTransmission)
      客户端使用此服务以扩展的数据链路安全性执行数据传输。此服务主要是在传输数据的过程中,防止受到来自第三方的危害数据安全的数据攻击,更详细的介绍请参考 ISO 15764。也可以用于在客户端和服务器之间以安全模式传输符合某些其他应用程序协议的外部数据。 在这种情况下,安全模式意味着所传输的数据受到保护。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x84(SecuredDataTransmission)

  8. 0x85(ControlDTCSetting)
      客户端控制服务器中DTC的设置。这个服务可以选择是否屏蔽DTC的上报,验证其是否真正生效通常会跟0x19服务配合着使用。客户端使用ControlDTCSetting服务来停止或恢复服务器中诊断故障代码(DTC)的设置。该服务请求消息可用于停止在单个服务器或一组服务器中设置诊断故障代码。如果被寻址的服务器不能更改诊断故障代码的设置,则应以ControlDTCSetting否定响应消息作为响应,指示拒绝原因。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x85(ControlDTCSetting)

  9. 0x86(ResponseOnEvent)
      客户端请求启动服务器中的事件机制。该服务是请求服务器启动或停止对指定事件的响应的传输。如果服务器中发生指定的事件,此服务提供了自动执行诊断服务的可能性。 客户端指定事件(包括可选的事件参数)和事件发生时要执行的服务(包括服务参数)。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x86(ResponseOnEvent)

  10. 0x87(LinkControl)
      客户端请求控制通信波特率。LinkControl服务用于控制客户端和服务器之间的通信链接波特率,以交换诊断数据。 该服务可应用于那些允许在活动诊断会话期间进行波特率转换数据链路层。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x87(LinkControl)

二、数据传输功能单元

  1. 0x22(ReadDataByIdentifier)
      客户端请求读取由提供的DID标识的记录的当前值。该服务允许客户端从服务器请求由一个或多个 DID 标识的数据记录值。客户端请求消息包含一个或多个两字节的DID值,这些值标识服务器维护的数据记录。 dataRecord的格式和定义应特定于车辆制造商或系统供应商,并且如果服务器支持,则可以包括模拟输入和输出信号,数字输入和输出信号,内部数据和系统状态信息。服务器可以限制车辆制造商和系统供应商所同意的可同时请求的DID的数量。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x22(ReadDataByIdentifier)

  2. 0x23(ReadMemoryByAddress)
      客户端请求读取提供的内存范围的当前值。该服务允许客户端通过提供的起始地址从服务器请求内存数据,并指定要读取的内存大小。 该服务请求消息用于从由参数memoryAddress和memorySize标识的服务器请求内存数据。对于memoryAddress和memorySize参数的字节数由addressAndLengthFormatIdentifier定义。 也可以使用固定的addressAndLengthFormatIdentifier。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x23(ReadMemoryByAddress)

  3. 0x24(ReadScalingDataByIdentifier)
      客户端请求读取DID记录的缩放信息。 dataRecord的格式和定义应特定于车辆制造商,并且如果服务器支持,则可以包括模拟输入和输出信号,数字输入和输出信号,内部数据和系统状态信息。在收到ReadScalingDataByIdentifier请求后,服务器应访问与指定的dataIdentifier参数关联的缩放信息,并在一个ReadScalingDataByIdentifier肯定响应中发送缩放信息值。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x24(ReadScalingDataByIdentifier)

  4. 0x2A(ReadDataByPeriodicIdentifier)
      客户端请求调度服务器中的数据以进行定期传输。该服务允许客户端从服务器请求由一个或多个 PeriodicDataIdentifiers 标识的数据记录值的定期传输。dataRecord的格式和定义应特定于车辆制造商,并且如果服务器支持,则可以包括模拟输入和输出信号,数字输入和输出信号,内部数据和系统状态信息。在收到除 stopSending 以外的 ReadDataByPeriodicIdentifier 请求时,服务器应检查条件是否正确以执行服务。如果条件正确,则服务器应发送肯定的响应消息,仅包括服务标识符。一旦服务器通过肯定的响应接受了初始请求消息,服务器将永远不会发送否定的响应消息。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x2A(ReadDataByPeriodicIdentifier)

  5. 0x2C(DynamicallyDefineDataIdentifier)
      客户端请求动态定义数据标识符,这些数据标识符随后可以由0x22(ReadDataByIdentifier)服务读取。该服务的目的是为客户端提供将一个或多个数据元素分组为数据超集的功能,可以通过 0x22(ReadDataByIdentifier) 或0x2A(ReadDataByPeriodicIdentifier) 服务进行整体请求。该服务在处理诊断应用程序的临时数据需求方面提供了更大的灵活性,超出了可以通过静态定义的 DID 读取的信息的范围,并且还可以通过避免频繁的请求/响应从而降低带宽利用率。动态定义的 DID的定义可以通过单个请求消息或通过多个请求消息来完成。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x2C(DynamicallyDefineDataIdentifier)

  6. 0x2E(WriteDataByIdentifier)
      请求写入提供的 DID 指定的数据。该服务允许客户端在由提供的 DID 指定的内部位置将数据写入服务器。数据并且可能会受到保护,也有可能不受到保护。0x2C(DynamicallyDefineDataIdentifier)服务不得与此服务一起使用。服务器可以限制或禁止对某些 DID 值(由供应商/主车厂 定义为只读的 DID)的写访问。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x2E(WriteDataByIdentifier)

  7. 0x3D(WriteMemoryByAddress)
      客户端请求覆盖指定的内存范围。该服务会将参数 dataRecord 指定的数据写入由参数 memoryAddress 和 memorySize 指定的存储位置的服务器中。memoryAddress 和 memorySize 参数的字节数由addressAndLengthFormatIdentifier(低半字节和高半字节)定义。 还可以在 memoryAddress 或 memorySize 参数中使用固定的 addressAndLengthFormatIdentifier 和未使用的字节在较高范围的地址位置中填充值 0x00 。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x3D(WriteMemoryByAddress)

三、已存储数据传输功能单元

  1. 0x14(ClearDiagnosticInformation)
      允许客户端从服务器清除诊断信息(包括DTC,捕获的数据等)。完全处理该服务后,服务器应发送肯定响应。即使没有存储任何DTC,服务器也应发送肯定的响应。 如果服务器支持内存中 DTC 状态信息的多个副本,则服务器应清除 ReadDTCInformation 状态报告服务使用的副本。永久故障码应存储在非易失性存储器中。 这些 DTC 不能通过任何测试设备(例如车载测试仪,非车载测试仪)清除。 OBD 系统应通过完成并通过车载监控器自行清除这些故障诊断代码。 这将防止仅通过断开电池来清除 DTC。如果重新编程了发动机控制模块,并且所有受监视的组件和系统的就绪状态都设置为“未完成”,则永久性 DTC 必须可擦除。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x14(ClearDiagnosticInformation)

  2. 0x19(ReadDTCInformation)
      允许客户端从服务器请求诊断信息(包括DTC,捕获的数据等)。该服务允许客户端从车辆内的任何服务器或服务器组读取服务器驻留诊断故障代码(DTC)信息的状态。 除非另有说明,否则服务器应返回与排放有关的 DTC 信息和与排放无关的 DTC 信息。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x19(ReadDTCInformation)

四、输入输出控制功能单元

  1. 0x2F(InputOutputControlByIdentifier)
      请求控制服务器的输入/输出。客户端请求消息包含一个 DID,用于输入信号,内部服务器功能或输出信号。 controlOptionRecord 参数应包含服务器的输入信号,内部功能和输出信号所需的所有信息。如果请求消息已成功执行,则服务器应发送肯定响应消息。 即使 DID 当前不受测试人员控制,服务器也应使用 returnControlToECU 的inputOutputControlIParameter 向请求消息发送肯定响应消息。 如果需要,请求消息的 controlOptionRecord 参数可以实现为单个ON / OFF 参数,也可以实现为更复杂的控制参数序列,包括多个循环,持续时间等。该服务允许在单个请求消息中使用相应的 controlOptionRecord 控制单个 DID。 这样,服务器将以单个响应消息进行响应,其中包括请求消息的 DID 以及可选的 controlStatus 信息。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x2F(InputOutputControlByIdentifier)

五、例程控制功能单元

  1. 0x31(RoutineControl)
      客户端请求启动/停止服务器中的例程或请求例程结果。客户端使用 RoutineControl 服务来控制 RID,RID 由两字节的例程标识符标识。具体的控制类型有以下三种:第一种: 启动 RID;第二种: 停止 RID;第三种: 查询 RID 执行结果。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x31(RoutineControl)

六、上传下载功能单元

  1. 0x34(RequestDownload)
      客户端请求从客户端到服务器的数据传输。服务器收到 requestDownload 请求消息后,服务器应在发送肯定响应消息之前采取所有必要的措施来接收数据。在这里,ISO 14229 中并没有明确定义需要采用什么措施来确保接受数据的可行性。因此,需要额外关注主车厂给到的相关措施。我所在项目的要求是:进入ProgrammingSession 会话模式下,并对安全访问进行解锁之后才能进行数据的传输。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x34(RequestDownload)

  2. 0x35(RequestUpload)
      客户端请求从服务器到客户端的数据传输。服务器收到 requestUpload 请求消息后,服务器应采取所有必要的措施在发送肯定响应消息之前发送数据。在这里,ISO 14229 中并没有明确定义需要采用什么措施来确保接受数据的可行性。因此,需要额外关注主车厂给到的相关措施。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x35(RequestUpload)

  3. 0x36(TransferData)
      客户端将数据传输到服务器(下载)或从服务器请求数据(上传)。数据传输方向由前面的 RequestDownload 或 RequestUpload 服务定义。 如果客户端启动了 RequestDownload,则要下载的数据将包含在 TransferData 请求消息中的参数 transferRequestParameter 中。 如果客户端启动了 RequestUpload,则要上载的数据将包含在 TransferData 响应消息中的参数 transferResponseParameter中。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x36(TransferData)

  4. 0x37(RequestTransferExit)
      客户端请求终止数据传输。参数 transferRequestParameterRecord 记录包含服务器支持数据传输所需的参数。 这些参数的格式和长度是由主车厂定义的。
    详情请看文章链接:跟我学UDS(ISO14229) ———— 0x37(RequestTransferExit)

附录
ISO 14229 协议中所有NRC码的汇总:跟我学UDS(ISO14229) ———— NRC码
Sub-function 参数的详细说明:

我的理解是:
Bit 7 决定该请求是否需要抑制正响应的发送。当bit 7 被置1时,此时系统不会发送正响应。
Bit 0-6 决定了sub-function的值。
在这里插入图片描述

跟我学UDS(ISO14229) ———— 0x19 服务参数介绍
 这篇文章主要介绍了一些 0x19 服务在使用过程中的一些参数。平时可能并没有深入的去了解他们的工作原理,转换机制以及具体含义。在这里,我帮大家总结了一篇文章,希望对大家理解这个服务有帮助。

其他的附录表格,我均把他们放在了所需要使用的服务当中,这样更方便大家的理解和阅读。
————————————————
版权声明:本文为CSDN博主「菜鸡小詹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42957717/article/details/115954087

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转载-浅析UDS诊断 的相关文章

  • 通用 ELF 中的重定位(EM:40)

    我尝试从 Ubuntu 交叉编译到Friendly arm 但出现了奇怪的错误 root kevin VirtualBox home kevin Desktop makef make ARCH arm CROSS COMPILE arm n
  • 手臂 g++ 中缺少一些东西

    我安装了 CodeSourcery g 工具链并尝试编译一个简单的 hello world 程序 include
  • Android 上原生的自修改代码

    我正在尝试在 Android 上制作一些自修改本机代码并在模拟器中运行它 我的示例基于 android ndk 中的 Hello JNI 示例 它看起来像这样 define NOPE LENGTH 4 typedef void FUNC v
  • 将 ZeroMQ 交叉编译为 ARM,以便在 MonoTouch iPhone 应用程序配置设置中使用

    我正在尝试在使用 MonoTouch 用 C 开发的 iPhone 应用程序中使用 ZeroMQ 库 我几乎解决了所有的问题 却在最后一道坎倒下了 我正在使用 ZeroMQ 2 1 10 和 C CLR 绑定 包装器 并在 Mac OS X
  • arm64 汇编:LDP 与 LD4 执行时间

    假设我想用连续内存位置的值加载四个连续的 aarch64 向量寄存器 一种方法是 ldp q0 q1 x0 ldp q2 q3 x0 32 根据ARM优化指南 https static docs arm com uan0016 a cort
  • 警告:可加载部分“my_section”位于 ELF 段之外

    我使用 Cortex R4 的 Arm Compiler v6 9 构建了一个 axf elf 文件 但是 当我使用 Arm MCU Eclipse J link GDB 插件将其加载到目标时 它无法加载我的段的初始化数据 如果我使用 Se
  • 使用 gnueabihf 为 ARMv6 构建

    我尝试为 ARMv6 构建应用程序 但失败了 我猜问题是工具链支持硬浮点 但 ARMv6 不支持 好吧 首先我设置 march armv6 编译失败 opt gcc linaro arm linux gnueabihf 4 8 2014 0
  • ARM Neon:如何从 uint8x16_t 转换为 uint8x8x2_t?

    我最近发现了关于vreinterpret q dsttype src类型转换运算符 https stackoverflow com a 43519190 2436175 但是 这似乎不支持所描述的数据类型的转换这个链接 http infoc
  • 使用 ARM NEON 内在函数添加 alpha 和排列

    我正在开发一个 iOS 应用程序 需要相当快地将图像从 RGB gt BGRA 转换 如果可能的话 我想使用 NEON 内在函数 有没有比简单分配组件更快的方法 void neonPermuteRGBtoBGRA unsigned char
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015
  • GCC ARM 汇编预处理器宏

    我正在尝试使用汇编 ARM 宏进行定点乘法 define MULT a b asm volatile SMULL r2 r3 0 1 n t ADD r2 r2 0x8000 n t ADC r3 r3 0 n t MOV 0 r2 ASR
  • 在嵌入式设备上使用new或malloc引起的段错误[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 读取和打印手臂组件中的字符串

    我正在使用 ARMSim 刚刚开始学习汇编 所以如果我看起来一无所知 请原谅我 但我正在尝试从输入文件中读取字符串 然后将其打印到输出屏幕 到目前为止我有 equ SWI Open 0x66 open a file equ SWI Clos
  • 源和目标具有不同的 EABI 版本

    我正在尝试使用 ARM 工具链编译 so 文件 但是我不断收到这个错误 错误 源对象的 EABI 版本为 0 但目标对象的 EABI 版本为 5 我无法更改工具链中的任何内容 因为我必须使用给定的工具链 我以前从未见过这个错误 我使用了这个
  • arm-thumb指令集的blx指令如何支持4MB范围

    读自https www keil com support man docs armasm armasm dom1361289866046 htm https www keil com support man docs armasm arma
  • ARM + gcc:不要使用一大块 .rodata 部分

    我想使用 gcc 编译一个程序 并针对 ARM 处理器进行链接时间优化 当我在没有 LTO 的情况下编译时 系统会被编译 当我启用 LTO 时 使用 flto 我收到以下汇编错误 错误 无效的文字常量 池需要更近 环顾网络 我发现这与我系统
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE
  • 直接在 ARM 目标上调试单声道应用程序

    我最近在 BeagleBone 嵌入式 ARM 设备上安装了 Mono 希望通过 USB 连接 Kinnect 传感器并使用 C Mono 控制它 我想知道 Mono 我正在使用 MonoDevelop 但我想这个问题也适用于 VS 是否允
  • ARM Chromebook 上的 Android 开发环境?

    我尝试了多次安装和使用安卓工作室 https developer android com studio index html on an ARM Chromebook C100P https archlinuxarm org platfor
  • 什么是遗留中断?

    我正在开发一个项目 试图弄清楚 ARM 架构的全局中断控制器中如何处理中断 我正在使用 pl390 中断控制器 我看到有一条线被称为传统中断 它绕过了分配器逻辑 假设有 2 个中断可以被编程为传统中断 任何人都可以帮助解释一下什么是遗留中断

随机推荐

  • 【线性表】最常用的数据结构:线性表

    线性表 Linear List 是 最常用且 最简单的一种数据结构 有数据库知识的同学应该比较了解 线性表的定义 线性表是由n n 0 个 数据元素 结点 a 1 a 2 a n组成的有限序列 数据元素的个数n定义为表的长度 n 0时称为空
  • linux 检查程序所需库,查看命令运行所需要的库支持

    问题 我想知道当我调用一个特定的可执行文件在运行时载入了哪些共享库 是否有方法可以明确Linux上可执行程序或运行进程的共享库依赖关系 查看可执行程序的共享库依赖关系 要找出某个特定可执行依赖的库 可以使用ldd命令 这个命令调用动态链接器
  • ImportError: liblapack.so.3: cannot open shared object file: No such file or directory

    如果用的是conda的话 尝试一下 conda install c conda forge liblapack
  • 【操作教程】EasyNVR平台如何接入硬盘录像机?

    EasyNVR是基于RTSP Onvif协议接入的视频平台 可支持将前端设备的音视频进行采集 传输 处理并分发 实现视频监控直播 云端录像 云存储 检索回看 国标级联 告警等视频能力 平台兼容性高 可拓展性强 性能稳定 可应用在智慧工地 智
  • Failed to create the Java Virtual Machine问题解决

    问题现象 打开eclipse exe 弹出如下对话框 问题分析 这是eclipse启动初始化时报的错 一般出现这种情况跟安装了多个Java虚拟机有关 然后eclipse启动的时候 不知道要配置哪一个JDK 所以会报Failed to cre
  • D360周赛复盘:模拟(思维题目)⭐⭐+贪心解决可能的最小和(类似上次)

    文章目录 2833 距离原点最远的点 思路 完整版 2834 找出美丽数组的最小和 思路 完整版 2833 距离原点最远的点 给你一个长度为 n 的字符串 moves 该字符串仅由字符 L R 和 组成 字符串表示你在一条原点为 0 的数轴
  • python+selenium基于po模式的web自动化测试框架

    一 什么是Selenium Selenium是一个基于浏览器的自动化测试工具 它提供了一种跨平台 跨浏览器的端到端的web自动化解决方案 Selenium主要包括三部分 Selenium IDE Selenium WebDriver 和Se
  • 深度学习之目标检测与目标识别

    一 目标识别分类及应用场景 目前可以将现有的基于深度学习的目标检测与识别算法大致分为以下三大类 基于区域建议的目标检测与识别算法 如R CNN Fast R CNN Faster R CNN 基于回归的目标检测与识别算法 如YOLO SSD
  • FW1配置文件

    FW1 sh conf Building configuration Running configuration Version 5 5R2 ip vrouter trust vr exit vswitch vswitch1 exit zo
  • 【Linux】向Linux 5.11.8内核加入新的系统调用

    目录 特殊声明 A mathcal A A 获取root权限
  • 【分布式】分布式相关书籍

    1 概述 1 1 分布式文章汇总 书籍 悟空聊架构 分布式文章汇总 评分 8分 第一章 主要讲解 拜占庭故障 这个讲解的非常好值得一看 第二章 主要讲解 Paxos 共识算法 这个图很好 但是仍然很难懂 第三章 动图讲解分布式 Raft 但
  • 开始学下VC++了

    有点迟了 以前光学DELPHI了 结果还是半瓶子的样子 现在接触下VC 要不会让人BS的 希望开个好点的头吧 不要老是三心二意的哦耶 PS QQ的五笔比搜狗的五笔好用不 个人感觉还是QQ的有点好用哦 嘿嘿 Orz 转载于 https www
  • mac安装python3.7_Mac安装python3.7

    mac默认安装的pyhon版本为2 7 如果要更新为python3 7 那么可以直接安装python3 7 千万不要卸载2 7版本 相信我 把系统自带的东西胡乱卸载掉的话你绝对会后悔的 步骤一 下载安装python3 7 方法一 使用hom
  • Flutter - 图片点击全屏浏览

    demo 地址 https github com iotjin jh flutter demo flutter好用的轮子推荐四 可定制的图片预览查看器photo view flutter九宫格图片查看器 效果图 关于九宫格布局实现 JhPh
  • 方差传递公式

    假设 Y f X 则 Var Y Sigma frac partial f partial x i Var x i
  • vue3-实现父子组件之间的通信(详解+源码)

    前言 vue3相对于vue2的父子传参方式有所改变 本文介绍三种 父组件给子组件传参 父组件调用子组件内的方法 子组件调用父组件的方法 如果不需要一种一种看可以直接下滑看全部代码 有注释也蛮好理解 一 父组件给子组件传参 1 父组件给子组件
  • 毕业设计-基于机器视觉的安全帽佩戴识别系统

    目录 前言 课题背景与意义 课题实现技术思路 目标检测 算法检测 算法实现 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的
  • Java之局部变量的作用域

    1 循环语句中变量 public static void main String args for int i 0 i lt 10 i int sum 3 System out println i sum 就上面最简单的程序说明吧 上面在f
  • 玻纤效应对skew的影响(三)

    玻纤效应对skew的影响 一 玻纤效应对skew的影响 二 对内skew对32Gbps NRZ和64Gbps PAM 4的影响 这一篇中 玻纤效应造成的对内skew将会加入到32Gbps NRZ和64Gbps PAM 4 SerDes全链路
  • 转载-浅析UDS诊断

    文章目录 前言 一 诊断和通信管理功能单元 0x10 DiagnosticSessionControl 0x11 ECUReset 0x27 SecurityAccess 0x28 CommunicationControl 0x3E Tes