您尚未登录。

楼主 # 2023-05-17 09:47:01

耳东陈
会员
注册时间: 2023-05-06
已发帖子: 10
积分: 11

pikascript下如何传递list

rtt系统下,通过串口打印输出脚本发送的数据
1、想在pyi文件下传递一个数组到单片机,该数组类型不定,可能是字符型,整型,浮点型,之前想通过定义可变参数模块def vals(a:int, *val):...,但是测试发现如果传递的是一个字符串‘hello’,按照如下执行后:
for(int i =0; i< pikaTuple_getSize(val); i++)
{
    Arg* arg_i = pikaTuple_getArg(val, i);
    rt_device_write(serial,0,arg_getStr(arg_i),1);
}
串口输出的只是一个字符‘h’,不明白为什么。
2、如果我不是可变参数传递而是用list传递,该怎么设置
3、如果想打印list内容,如何确定其长度?是否可用Tuple类下的len方法
非常感谢高手支招!

离线

#1 2023-05-17 11:10:25

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 108
积分: 55

Re: pikascript下如何传递list

@耳东陈
rt_device_write(serial,0,arg_getStr(arg_i),1); 这里,最后一个参数长度给的1,肯定就只打印一个字符呗

传入list的案例参考:https://gitee.com/Lyon1998/pikapython/blob/master/package/PikaStdLib/PikaStdData.pyi

里面的 FILEIO 类的 def writelines(self, lines: List): ...

离线

楼主 #2 2023-05-26 10:39:49

耳东陈
会员
注册时间: 2023-05-06
已发帖子: 10
积分: 11

Re: pikascript下如何传递list

谢谢,参照案例做了如下修改,可以成功传递了。

                        for(int i =0; i< pikaList_getSize(list); i++)
			{
				Arg* arg_i = pikaList_getArg(list, i);
				result = rt_device_write(serial,0,arg_getStr(arg_i),1);
				if (result != 1)
				{
					rt_kprintf("RS232_UART_NAME2 write failed\r\n");
					return ;
				}
			}

最近编辑记录 耳东陈 (2023-05-26 10:41:02)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn