代码在PC运行正常但树莓派上输出异常的技术求助
代码在PC运行正常但树莓派上输出异常的技术求助
大家好,我碰到了一个百思不得其解的问题——完全相同的代码在PC上运行时完全符合预期,但放到树莓派上执行就出现了异常。我已经尝试过把代码重新复制到树莓派上,但问题依然存在,所以来这里求助各位!
问题详情
在PC上运行时,这段代码能正常读取Scratch项目的云变量toserver,当收到非空且非“0”的消息时,会给云变量response设为1,随后把toserver重置为0,整个流程完全没问题。
但在树莓派上运行时,控制台先是反复输出Current message: 0,之后突然开始一直输出Current message: 1,而且停不下来,完全偏离了预期逻辑。
树莓派上的异常输出
Current message: 0 Current message: 0 Current message: 0 ...(重复多条0的输出) Current message: 1 Current message: 1 Current message: 1 ...(持续重复输出1,不会停止)
我使用的代码(PC和树莓派上完全一致)
import scratchattach as sa import time import warnings # Optional: suppress login warnings warnings.filterwarnings('ignore', category=sa.LoginDataWarning) # Login with username/password (or use session ID for stability) USERNAME = "my username" PASSWORD = "my password" PROJECT_ID = 1207157729 # 对应Scratch项目:https://scratch.mit.edu/projects/1207157729/ session = sa.login(USERNAME, PASSWORD) # Connect to the project cloud variables cloud = session.connect_scratch_cloud(PROJECT_ID) LAST_MESSAGE = "" while True: # Read the "toserver" cloud variable current_message = cloud.get_var("toserver") print(f"Current message: {current_message}") # debug输出 if str(current_message).strip() != "" and str(current_message) != "0": print(f"New message received: {current_message}") # 发送响应 cloud.set_var("response", 1) # 清除原消息 cloud.set_var("toserver", 0) time.sleep(0.5) # 避免频繁请求Scratch服务器
我检查过树莓派的网络连接是正常的,也能成功登录Scratch账号,实在搞不懂为什么运行结果和PC上差异这么大。有没有朋友遇到过类似的情况,或者能帮我分析下可能的原因?
内容来源于stack exchange
相关产品推荐
相关产品推荐

