GPIOドライバーによって提供される関数のPython拡張機能を書いています。set_bit()やclear_bit()のような単純な関数でかなり簡単に進歩しました。しかし、今度はwait_int()を実装する必要があります。これは、入力ピンでイベントが検出されるまでスリープし、cとpythonの間でこれを調整する正しい方法がわかりません。これは、cで関数を使用する簡単な例です。
main(int argc, char *argv[])
{
int c;
//some setup like testing port availability, clearing interrupts, etc
...
while(1)
{
printf("**\n");
c = wait_int(1);//sleeps until an interrupt occurs on chip 1
if(c > 0) {
printf("Event sense occured on Chip 1 bit %d\n",c);
++event_count;
}
else
break;
}
printf("Event count = %05d\r",event_count);
printf("\nExiting Now\n");
}
wait_intをほとんど直接公開してから、Pythonで同等の無限ループのイディオムを実行しますか?実行する必要のあるデバウンスもいくつかあります。私はcでそれをしました、しかし多分それはpython側に移されるかもしれません。