基于python二次开发图莫斯工具--CAN-TP测试(多帧的发送如何用程序进行处理?)

m0_70316653 2024-09-18 14:33:53
def SendMoreMsg(self,DataId,TxData)->None:#多帧发送:10111213141516171819
    msg: str = TxData.replace("","")
    msg1: str = msg.replace(",","")

    Txlen:str = "%03X" % (int(len(msg1)/2 + 4096))#计算出需要发送数据的有效长度
    SendMsgNum = ((len(msg1)/2) -6)/7
    FF_Msg = Txlen + msg1[4:16]
    MsgForFirstData = "20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F"
    #WithoutFFData = TxData[16:]
    # for i in
    #WithoutFFData = WithoutFFData[]
    MSG = CAN_MSG()
    MSG.ID = DataId
    MSG.DataLen = 8
    MSG.RemoteFlag = 0
    MSG.ExternFlag = 0
    for i in range(0,8):
        MSG.Data[i] = int(FF_Msg[i*2:i*2+2],16)
    ret = CAN_SendMsg(self.DevHandle,0,byref(MSG),1)#首诊发送
    TMScandevice1.ResCanData(0,0x79C)
    if len(msg1) <= 236:
      WithoutFFData = TxData[12:]#16171819
      # print(WithoutFFData)
      for i in range(1,6):
          MsgForFirstData = MsgForFirstData.replace(",","")
          MsgForFirstData = MsgForFirstData.replace(" ","")
          # print(MsgForFirstData)
          MSG.Data[0] = int(MsgForFirstData[i*2:i*2+2],16)#连续帧帧头
          for i in range(1,8):
              MSG.Data[i] = WithoutFFData[i]
              print(MSG.Data[0:8])
          ret = CAN_SendMsg(self.DevHandle,0,byref(MSG),1)#该如何去规定我最终
          time.sleep(0.01)
          print(ret)

多帧发送的代码如上,目前问题卡在了发送首帧之后,连续帧的发送无法通过程序自动实现,想问问社区的大佬们如何进行处理?

...全文
80 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,955

社区成员

发帖
与我相关
我的任务
社区描述
人生苦短,我用python
社区管理员
  • Python 学习者
  • 嗨学编程
  • 松鼠爱吃饼干
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎来到Python学习者们的社区,

 

本社区分享你需要的文章、问题解答、技术互助、学习资源、面试系列等等

 

欢迎你的加入,祝你学有所成~

试试用AI创作助手写篇文章吧