MicroPeckerX ADL Python向けサンプル
マクロ定義 | 関数 | 変数
mpx_adl_wrapper.cpp ファイル
#include "Python.h"
#include "MPXCANFDCtrlLinuxFree.h"
#include "stdio.h"
#include "unistd.h"
#include <deque>
#include <pthread.h>
#include <sstream>
#include <string.h>
#include <iostream>
#include <stdint.h>

マクロ定義

#define PY_SSIZE_T_CLEAN
 

関数

PyMODINIT_FUNC PyInit_mpx_py_wrapper (void)
 
static PyObject * _DispMonitor (PyObject *self, PyObject *args)
 MPX ADL 初期化ラッパ関数 MPX送受信メッセージ情報取得ラッパ関数のサンプル。
本関数は、時間/ID/DL/送受信方向/PayLoadのみPythonに通知している。 
[詳解]
 
static PyObject * _MPXOpen (PyObject *self, PyObject *args)
 MPX ADL MPXOpen API ラッパ関数 MPXの初期化を行うAPI"MPXOpen"を呼び出すラッパ関数サンプル。 [詳解]
 
static PyObject * _MPXSampleInit (PyObject *self, PyObject *args)
 MPX ADL 初期化ラッパ関数 MPXの初期化を一括して行うラッパ関数サンプル。
本関数は、Classic CAN/500Kbps/サンプリングポイント80%/終端抵抗有効で初期化する。
CAN-FDメッセージが必要な場合などは、本関数を直接改変するか、
引数に追加して制御可能なラッパ関数を作成する。 [詳解]
 
static PyObject * _MPXMonitorStart (PyObject *self, PyObject *args)
 MPX ADL MPXMonitorStart API ラッパ関数 MPXに対するモニタ開始要求である"MPXMonitorStart"を呼び出すラッパ関数サンプル。 [詳解]
 
static PyObject * _MPXDirectSend (PyObject *self, PyObject *args)
 MPX ADL MPXDirectSend API ラッパ関数 MPXに対する即時メッセージ送信要求である"MPXDirectSend"を呼び出すラッパ関数サンプル。 [詳解]
 
static PyObject * _MPXMonitorStop (PyObject *self, PyObject *args)
 MPX ADL MPXMonitorStop API ラッパ関数 MPXに対するモニタ停止要求である"MPXMonitorStop"を呼び出すラッパ関数サンプル。 [詳解]
 
static PyObject * _MPXClose (PyObject *self, PyObject *args)
 MPX ADL MPXClos API ラッパ関数 MPX切断要求を行う"MPXClose"を呼び出すラッパ関数サンプル。 [詳解]
 
PyMODINIT_FUNC PyInit_MPX_ADL_WR (void)
 ラッパモジュールの初期化コールバック [詳解]
 

変数

std::deque< std::string > print_que
 
pthread_mutex_t que_mutex
 
std::string strbuf
 
static PyMethodDef mpx_py_wrapper_methods []
 ラッパAPIの定義 [詳解]
 
static struct PyModuleDef mpx_py_wrapper_mod
 ラッパモジュールの定義 [詳解]
 

マクロ定義詳解

◆ PY_SSIZE_T_CLEAN

#define PY_SSIZE_T_CLEAN

関数詳解

◆ _DispMonitor()

static PyObject * _DispMonitor ( PyObject *  self,
PyObject *  args 
)
static

MPX ADL 初期化ラッパ関数 MPX送受信メッセージ情報取得ラッパ関数のサンプル。
本関数は、時間/ID/DL/送受信方向/PayLoadのみPythonに通知している。 

引数
第1引数データ取得対象のMPXシリアル番号[整数型]
第2引数データ取得対象のMP内部チャンネル[整数型]
戻り値
第1要素メッセージ検出時間(受信/送信両方)[ms]
第2要素メッセージ検出時間(受信/送信両方)[us]
第3要素メッセージのCAN-ID[整数型]
第4要素メッセージのデータ長[整数型]
第5要素メッセージの送受方向[文字列型]
第6要素メッセージのペイロード[bytearray型]

◆ _MPXClose()

static PyObject* _MPXClose ( PyObject *  self,
PyObject *  args 
)
static

MPX ADL MPXClos API ラッパ関数 MPX切断要求を行う"MPXClose"を呼び出すラッパ関数サンプル。

戻り値
結果如何に関わらず'0'を返す。

◆ _MPXDirectSend()

static PyObject* _MPXDirectSend ( PyObject *  self,
PyObject *  args 
)
static

MPX ADL MPXDirectSend API ラッパ関数 MPXに対する即時メッセージ送信要求である"MPXDirectSend"を呼び出すラッパ関数サンプル。

引数
第1引数送信要求対象のMPXシリアル番号[整数型]
第2引数送信要求対象の内部チャンネル[整数型]('1'又は'2')
第3引数送信するメッセージのCAN-ID[整数型]
第4引数送信するメッセージのDLC[整数型]
第5引数送信するメッセージのペイロード[bytes型配列]
戻り値
MPXDirectSend APIの戻り値

◆ _MPXMonitorStart()

static PyObject* _MPXMonitorStart ( PyObject *  self,
PyObject *  args 
)
static

MPX ADL MPXMonitorStart API ラッパ関数 MPXに対するモニタ開始要求である"MPXMonitorStart"を呼び出すラッパ関数サンプル。

引数
第1引数モニタ開始対象のMPXシリアル番号[整数型]
戻り値
MPXMonitorStart APIの戻り値

◆ _MPXMonitorStop()

static PyObject* _MPXMonitorStop ( PyObject *  self,
PyObject *  args 
)
static

MPX ADL MPXMonitorStop API ラッパ関数 MPXに対するモニタ停止要求である"MPXMonitorStop"を呼び出すラッパ関数サンプル。

引数
第1引数モニタ停止対象のMPXシリアル番号[整数型]
戻り値
第1要素MPXMonitorStop戻り値
第2要素モニタ停止完了時間(ms以上の桁)
第2要素モニタ停止完了時間(us単位の桁*ms以上の桁情報は除く)

◆ _MPXOpen()

static PyObject* _MPXOpen ( PyObject *  self,
PyObject *  args 
)
static

MPX ADL MPXOpen API ラッパ関数 MPXの初期化を行うAPI"MPXOpen"を呼び出すラッパ関数サンプル。

戻り値
第1要素MPXOpen戻り値
第2要素MicroPeckerX 検出台数
第3要素MicroPeckerXシリアルナンバーを含むリスト

◆ _MPXSampleInit()

static PyObject* _MPXSampleInit ( PyObject *  self,
PyObject *  args 
)
static

MPX ADL 初期化ラッパ関数 MPXの初期化を一括して行うラッパ関数サンプル。
本関数は、Classic CAN/500Kbps/サンプリングポイント80%/終端抵抗有効で初期化する。
CAN-FDメッセージが必要な場合などは、本関数を直接改変するか、
引数に追加して制御可能なラッパ関数を作成する。

引数
第1引数初期化対象のMPXシリアル番号[整数型]
戻り値
正常終了0
パラメータ設定に失敗した場合MPXSetCANParamの戻り値

◆ PyInit_MPX_ADL_WR()

PyMODINIT_FUNC PyInit_MPX_ADL_WR ( void  )

ラッパモジュールの初期化コールバック

◆ PyInit_mpx_py_wrapper()

PyMODINIT_FUNC PyInit_mpx_py_wrapper ( void  )

変数詳解

◆ mpx_py_wrapper_methods

PyMethodDef mpx_py_wrapper_methods[]
static
初期値:
= {
{"MPXOpen", _MPXOpen, METH_VARARGS},
{"MPXSampleInit", _MPXSampleInit, METH_VARARGS},
{"MPXMonitorStart", _MPXMonitorStart, METH_VARARGS},
{"MPXMonitorStop", _MPXMonitorStop, METH_VARARGS},
{"MPXDirectSend",_MPXDirectSend,METH_VARARGS},
{"MPXClose",_MPXClose,METH_VARARGS},
{"DispMonitor",_DispMonitor,METH_VARARGS},
{NULL}
}
static PyObject * _MPXMonitorStop(PyObject *self, PyObject *args)
MPX ADL MPXMonitorStop API ラッパ関数 MPXに対するモニタ停止要求である"MPXMonitorStop"を呼び出すラッパ関数サンプル。
Definition: mpx_adl_wrapper.cpp:152
static PyObject * _MPXClose(PyObject *self, PyObject *args)
MPX ADL MPXClos API ラッパ関数 MPX切断要求を行う"MPXClose"を呼び出すラッパ関数サンプル。
Definition: mpx_adl_wrapper.cpp:169
static PyObject * _MPXMonitorStart(PyObject *self, PyObject *args)
MPX ADL MPXMonitorStart API ラッパ関数 MPXに対するモニタ開始要求である"MPXMonitorStart"を呼び出すラッパ関数サンプル。
Definition: mpx_adl_wrapper.cpp:98
static PyObject * _MPXSampleInit(PyObject *self, PyObject *args)
MPX ADL 初期化ラッパ関数 MPXの初期化を一括して行うラッパ関数サンプル。 本関数は、Classic CAN/500Kbps/サンプリングポイント80%/終端抵抗有効で初期化する。 CAN-...
Definition: mpx_adl_wrapper.cpp:58
static PyObject * _MPXDirectSend(PyObject *self, PyObject *args)
MPX ADL MPXDirectSend API ラッパ関数 MPXに対する即時メッセージ送信要求である"MPXDirectSend"を呼び出すラッパ関数サンプル。
Definition: mpx_adl_wrapper.cpp:118
static PyObject * _DispMonitor(PyObject *self, PyObject *args)
MPX ADL 初期化ラッパ関数 MPX送受信メッセージ情報取得ラッパ関数のサンプル。 本関数は、時間/ID/DL/送受信方向/PayLoadのみPythonに通知している。 
Definition: mpx_adl_wrapper.cpp:221
static PyObject * _MPXOpen(PyObject *self, PyObject *args)
MPX ADL MPXOpen API ラッパ関数 MPXの初期化を行うAPI"MPXOpen"を呼び出すラッパ関数サンプル。
Definition: mpx_adl_wrapper.cpp:37

ラッパAPIの定義

◆ mpx_py_wrapper_mod

struct PyModuleDef mpx_py_wrapper_mod
static
初期値:
= {
PyModuleDef_HEAD_INIT,
"MPX_ADL_WR",
"MPX ADL Python3 Sample Wrapper",
-1,
}
static PyMethodDef mpx_py_wrapper_methods[]
ラッパAPIの定義
Definition: mpx_adl_wrapper.cpp:178

ラッパモジュールの定義

◆ print_que

std::deque<std::string> print_que

◆ que_mutex

pthread_mutex_t que_mutex

◆ strbuf

std::string strbuf