2019-07-17 21:09发布
njrzkj 发表于 2016-11-17 15:20 把ID的那个数组放到for循环之外,从外面引进来才是按照数组的索引一个一个来,放到循环里面时,你只能看到你设置的循环次数的那个id被发送了。for循环除了起到循环作用之外还有自动索引数组的功能,你把数组放在循环里它就索引不了数组了。 ...
草莓大宝草莓小宝 发表于 2016-11-18 09:54 把数组放到了for循环外边还是不行,不开usbcan的时候发送就显示两次发送失败,吧usbcan打开之后,还是等这个循环结束之后连续向第二个id号中发送两次数据,这是哪里的问题呀?
最多设置5个标签!
把数组放到了for循环外边还是不行,不开usbcan的时候发送就显示两次发送失败,吧usbcan打开之后,还是等这个循环结束之后连续向第二个id号中发送两次数据,这是哪里的问题呀?
是这样,这个驱动总体是有三个while循环所构成的,一个是主循环,一个是接收函数循环,一个是发送函数循环,数据输入和ID输入都是在主循环里,这三个循环是通过产生用户事件联系起来的,我又试了一下,每次都是主while循环中的某一个事件全部运行结束后,才能运行接收或者发送循环,也就是说,只有这个for循环全部循环完毕,才能调用发送函数,执行次数虽然在运行过程中是值变化的也不能执行发送函数。之后这for循环循环完才能执行发送函数。是不是因为产生用户事件的问题?我是想不明白了,脑细胞都快死光了,也没有解决了。呜呜
我有新开了一个帖子,您也可以去那里指导我,在这里也行
估计是因为你用的这个“执行次数”来触发事件结构的问题。执行次数虽然每循环一次都会变一次,但是这个值信号的属性节点要输出的时候只有等for循环结束了才会有值输出。你要么把那个“执行次数”值改变这个事件里的程序都放到这个for循环中来吧。要么就直接把这个ID数组放到发送报文的地方,在那里用for循环来控制发送。另外记住不管是for循环还是while循环,如果要将循环里的值在循环外面引用的话,这个值只有当循环结束了才会输出,也就是你只能看到是最后一个值。
一周热门 更多>