请原谅,我是一位负责编程的工程师。我不是程序员。我对python有点熟悉。我的目标是使这台收音机使用树莓派3正常工作,但是收音机的所有代码都是用c ++编写的。我需要将这些c ++类公开给python,尽管我正在取得进步,但是我被困住了。 在此类中,有一个打开无线电的功能(SX1272 :: ON()),并且在此函数中,它调用setMaxCurrent函数...
uint8_t SX1272::ON()
{
uint8_t state = 2;
#if (SX1272_debug_mode > 1)
printf("\n");
printf("Starting 'ON'\n");
#endif
setMaxCurrent(0x1B);
int8_t SX1272::setMaxCurrent(uint8_t rate)
{
int8_t state = 2;
byte st0;
#if (SX1272_debug_mode > 1)
printf("\n");
printf("Starting 'setMaxCurrent'\n");
#endif
....
我已经开始用python包装此类,但是编译后,出现以下错误……
PyObject* ON(PyObject* self, PyObject* args)
{
PyObject* SX1272Capsule = NULL;
SX1272* sx1272 = (SX1272*)PyCapsule_GetPointer(SX1272Capsule, "SX1272Ptr");
sx1272->ON();
return Py_BuildValue("i", 0);
}
PyObject* setMaxCurrent(PyObject* self, PyObject* args)
{
PyObject* SX1272Capsule = NULL;
uint8_t rate;
PyArg_ParseTuple(args, "b", &SX1272Capsule, &rate);
SX1272* sx1272 = (SX1272*)PyCapsule_GetPointer(SX1272Capsule, "SX1272Ptr");
sx1272->setMaxCurrent(rate);
return Py_BuildValue("");
}
setMaxCurrent部分出了问题。不确定是什么???我希望这是有道理的,也希望有人可以指出我正确的方向。谢谢