【问题标题】:Script returns a value in the stadout but not able to get value in return parameter脚本在 stadout 中返回一个值,但无法在返回参数中获取值
【发布时间】:2020-06-16 14:09:19
【问题描述】:

我正在使用 callexec 函数来调用 python 脚本。 python 脚本在 stadout 中返回一个值,但我无法获取返回参数中的值。有没有办法将值传递给结果变量?

这是我正在使用的 CANape 脚本:

double err;
char result[];

err = CallExecutable("C:\\Program Files (x86)\\Python38-32\\python.exe", "C:\\Users\\XXXX\\Desktop\\Read_Current.py 1", 1, result);

print("%s", result);

提前致谢

【问题讨论】:

  • 抱歉,CANape 的语言是 CASL 而不是 CAPL。我没有找到 CASL 的标签。
  • 完成。为混乱道歉。

标签: canape


【解决方案1】:

提供给 CallExecutable 的结果缓冲区将返回 Python 程序的退出代码的结果。如果调用以下 python 代码将返回 123,这就是上面代码中 result 的值。

导入系统 sys.exit(123)

如果您希望从 python 脚本传回数据,我已经使用函数 DLL 机制完成了此操作(CANape 中包含一些演示代码)。它涉及一个小的 C++ 包装器来与 python 或其他语言交互。

【讨论】:

  • 您好,用户。您能否进一步解释如何使用 DLL 将信息发送回 python?谢谢
  • CANape中的函数DLL demo有一些源代码。从那开始,然后关注stackoverflow.com/questions/3286448/…。 CANape 中还有一个 C-RT DLL 演示,但我还没有在 Python 中使用过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
相关资源
最近更新 更多