automeal package¶
- class automeal.SamplingLoopIterator(duration_time_ms: float, sampling_interval_ms: float)[source]¶
Bases:
object
- automeal.get_latest_can(user_defined_name, channel, can_id, direction)[source]¶
指定した識別名のデバイスの指定のチャンネルでCANの受信または送信した最新のデータ1つを取得します。
- Parameters:
user_defined_name (str) -- 識別名
channel (int) -- チャンネル番号
direction (str) -- 送受信方向 送信("S")、 受信("R") で指定
- Returns:
指定した送受信方向の最新データ
- Return type:
bytes
- Example:
last_recv = automeal.get_latest_can("1.Vector_VN1630A", 1, 0x100, "R") # チャンネル1 で最後に受信したデータ取得
- automeal.get_latest_serial(port_id, direction)[source]¶
シリアルの受信または送信した最新のデータ1つを取得します。
- Parameters:
port_id (str) -- ポートID
direction (str) -- 送受信方向 送信("S")、 受信("R") で指定
- Returns:
指定した送受信方向の最新データ
- Return type:
bytes
- Example:
last_recv = automeal.get_latest_serial("Port1", "R") # Port1 で最後に受信したデータ取得
- automeal.linear_sampling(start: float, last: float, time: float, duration: float)[source]¶
ScriptGenerator の自動生成コードで使用するヘルパー関数です。 start から last へ向かって線形的に変化する値を返します。
- Parameters:
start -- 開始値
last -- 終了値
time -- 現在の時間
duration -- 終了値に遷移するまでの時間
- automeal.read_analog_cpiai1208li(board_id: str, channel_number: int)[source]¶
CPI-AI-1208LI の最新の計測電圧値 [mV] を取得します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-8)
- Returns:
指定したチャンネルの電圧値 [mV]
- Return type:
int
- Example:
voltage = automeal.read_analog_cpiai1208li("Board1", 1) # Board1 の ch1 の状態取得
- automeal.read_analog_rpigp40(board_id: str, channel_number: int)[source]¶
RPi-GP40 の最新の計測電圧値 [mV] を取得します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-8)
- Returns:
指定したチャンネルの電圧値 [mV]
- Return type:
int
- automeal.read_logic_cpidio0808l(board_id: str, channel_number: int)[source]¶
CPI-DIO-0808L の最新の計測値 (Hi/Lo) を取得します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-8)
- Returns:
指定したチャンネルの状態 Hi(True)/Lo(False)
- Return type:
bool
- Example:
state = automeal.read_logic_cpidio0808l("Board1", 1) # Board1 の ch1 の状態取得
- automeal.read_logic_rpigp10(board_id: str, channel_number: int)[source]¶
RPi-GP10 の最新の計測値 (Hi/Lo) を取得します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-8)
- Returns:
指定したチャンネルの状態 Hi(True)/Lo(False)
- Return type:
bool
- Example:
state = automeal.read_logic_rpigp10("Board1", 1) # Board1 の ch1 の状態取得
- automeal.read_pwm_ampio(board_id: str, channel_number: int)[source]¶
AM-PIO の最新の計測 PWM 信号の周波数 [Hz] とデューティー比 [%] を取得します。
指定した CE ピン番号と接続された AM-PIO の指定チャンネルの PWM 信号 (周波数、デューティー比) を取得します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-16)
- Returns:
指定したチャンネルの周波数 [Hz] とデューティー比 [%]
- Return type:
(int, float)
- Example:
freq, duty = automeal.read_pwm_ampio("Board1", 1) # Board1 の ch1 の状態取得
- automeal.sampling_loop(duration_time_ms: float, sampling_interval_ms: float = 100)[source]¶
ScriptGenerator の自動生成コードで使用するヘルパー関数です。 指定した時間間隔で for 文を実行するためのイテレータを返します。
- Parameters:
func -- 定期的に呼び出される関数
sampling_interval_ms -- 呼び出し間隔 [ms] (省略時は 100 ms)
例えば for [t, d] in automeal.sampling_loop(5000, 100): とすると、 5000 ms の間、100 ms ごとに for 文が実行されます。 この時 t は、ループ開始からの経過時間 [s] です。 d は duration_time_ms と同じ、呼び出しを続ける時間ですが、単位は [s] となります。 t と d は float 型の値です。
なお最初の for 文の実行時は必ず t=0 であり、最後は t==d となります。
- automeal.send_can(user_defined_name, channel, can_id, can_data)[source]¶
指定した識別名のデバイスの指定のチャンネルからCANメッセージを送信します。
- Parameters:
user_defined_name (str) -- 識別名
channel (int) -- チャンネル番号
can_id (int) -- CANメッセージのID部
can_data (bytes) -- 送信メッセージのデータ部
- Example:
automeal.send_can("1.Vector_VN1630A", 1, 0x100, [0x01, 0x02, 0x03] )
- automeal.send_can_message(user_defined_name, channel, can_message)[source]¶
指定した識別名のデバイスの指定のチャンネルからメッセージ名と一致するメッセージを送信します。
- Parameters:
user_defined_name (str) -- 識別名
channel (int) -- チャンネル番号
can_message (str) -- 送信するデータのメッセージ名(CAN送信パネルのMessage列)
- Example:
automeal.send_can_message("1.Vector_VN1630A", 1, "Init") # 定義済みの Init コマンドを送信
- automeal.send_serial(port_id, serial_data)[source]¶
指定したシリアルポートにデータを送信します。
- Parameters:
port_id (str) -- ポートID
serial_data (str or bytes) -- 送信データ 文字列またはバイト配列で指定
- Example:
automeal.send_serial("Port1", "Send Init") # "Send Init" の ASCII コードを送信
- Example:
automeal.send_serial("Port1", [0x01, 0x02, 0x03])
- automeal.send_serial_command(port_id, serial_command)[source]¶
指定したシリアルポートにコマンド名と一致するデータを送信します。
- Parameters:
port_id (str) -- ポートID
serial_command (str) -- 送信するデータのコマンド名(シリアル送信パネルのID列)
- Example:
automeal.send_serial_command("Port1", "Init") # 定義済みの Init コマンドを送信
- automeal.sleep(wait: float)[source]¶
ScriptGenerator の自動生成コードで使用するヘルパー関数です。 エラーチェック後に wait 時間待機します。
- Parameters:
wait -- 待機時間(s)
- automeal.smart_clamp(value, range1, range2)[source]¶
ScriptGenerator の自動生成コードで使用するヘルパー関数です。 対象値をrange内に収まるように修正した値を返します。
- Parameters:
value -- 対象値
range1 -- 下限
range2 -- 上限
- automeal.start_can_message_periodic(user_defined_name, can_message)[source]¶
指定した識別名のデバイスからメッセージ名と一致するメッセージの定期送信を開始します。
- Parameters:
user_defined_name (str) -- 識別名
can_message (str) -- 送信するデータのメッセージ名(CAN送信パネルのMessage列)
- Example:
automeal.start_can_message_periodic("1.Vector_VN1630A", "Init") # 定義済みの Init コマンドを送信
- automeal.start_can_periodic(user_defined_name, channel, can_id, can_data, period)[source]¶
指定した識別名のデバイスの指定のチャンネルからCANメッセージを定期送信します。
- Parameters:
user_defined_name (str) -- 識別名
channel (int) -- チャンネル番号
can_id (int) -- CANメッセージのID部
can_data (bytes) -- 送信メッセージのデータ部
period (int) -- 定期送信の間隔(ms)
- Example:
automeal.start_can_periodic("Vector_VN1630A-1", 1, 0x100, [0x01, 0x02, 0x03] , 10)
- automeal.start_test(folder_name: str)[source]¶
レポートを保存するフォルダを作成し、テストを開始します。 作成されるフォルダの名前は "TestResult_<folder_name>" の形式となります。 引数 folder_name に指定する文字列はディレクトリパスではありません。 先頭にスラッシュ "/" や末尾に拡張子 ".*" を含む文字列を指定しないでください。 フォルダはプロジェクトルート (プロジェクトファイルのあるフォルダ) の、 Reports/TestRun_yyyymmdd_hhmmss_<8 桁のランダム文字列>/TestCase_<id>_yyyymmdd_hhmmss 以下に作成されます。 この関数はテストが開始されている状態で呼び出さないでください。
- Parameters:
folder_name (str) -- 任意のフォルダ名
- automeal.step_sampling(start: float, last: float, step: float, time: float, duration: float)[source]¶
ScriptGenerator の自動生成コードで使用するヘルパー関数です。 start から last へ向かって step ごとに変化する値を返します。
- Parameters:
start -- 開始値
last -- 終了値
step -- 増分値
time -- 現在の時間
duration -- 終了値に遷移するまでの時間
- automeal.stop_can_message_periodic(user_defined_name, can_message)[source]¶
指定した識別名のデバイスからメッセージ名と一致するメッセージの定期送信を停止します。
- Parameters:
user_defined_name (str) -- 識別名
can_message (str) -- 送信するデータのメッセージ名(CAN送信パネルのMessage列)
- Example:
automeal.stop_can_message_periodic("1.Vector_VN1630A", "Init") # 定義済みの Init コマンドを送信
- automeal.stop_can_periodic(user_defined_name, channel, can_id=None)[source]¶
指定した識別名のデバイスの指定のチャンネルからの指定のCANメッセージの定期送信を停止します。
- Parameters:
user_defined_name (str) -- 識別名
channel (int) -- チャンネル番号
can_id (int) -- CANメッセージのID。指定なし/Noneの場合は指定チャンネルの定期送信をすべて停止します。
- Example:
automeal.stop_can_periodic("Vector_VN1630A-1", 1, 0x100)
- automeal.stop_test()[source]¶
テストを終了し、各種レポートやログファイルを start_test() 呼び出しにより 作成されたフォルダに保存します。 この関数を呼び出す前に、start_test() を呼び出している必要があります。
- automeal.wait_for_next_can_message(user_defined_name, channel, can_id, timeout_ms=None)[source]¶
指定したチャンネルの指定したIDで次にメッセージを受信するまで待機し、受信したデータを取得します。 すでに待機状態のチャンネルを指定した場合は例外になります。 待機中にテストを終了した等チャンネルが切断された場合は例外になります。 指定したタイムアウト秒数内でデータを受信しなかった場合は例外になります。
- Parameters:
user_defined_name (str) -- 識別名
channel (int) -- チャンネル
can_id (int) -- メッセージのID部分
timeout_ms -- タイムアウトまでの時間(ms)指定。1以上の整数で指定して下さい。指定なし/Noneの場合無限待ちを行います
- Returns:
指定したチャンネルで受信したメッセージのデータ部分
- Return type:
bytes
- Raises:
ValueError -- timeout_msに0または負の値が指定された場合
- Example:
last_recv = automeal.wait_for_next_can_message("1.Vector_VN1630A", 1, 0x300, 1000) # ID0x300 を次に受信するまで待機。1秒受信なしの場合例外エラー。
- automeal.wait_for_next_serial_data(port_id, timeout_ms=None)[source]¶
指定したポートで次にデータを受信するまで待機し、受信したデータを取得します。 すでに待機状態のポートを指定した場合は例外になります。 待機中にテストを終了した等ポートが切断された場合は例外になります。 指定したタイムアウト秒数内でデータを受信しなかった場合は例外になります。
- Parameters:
port_id (str) -- ポート番号
timeout_ms -- タイムアウトまでの時間(ms)指定。1以上の整数で指定して下さい。指定なし/Noneの場合無限待ちを行います
- Returns:
指定したポートの受信データ
- Return type:
bytes
- Raises:
ValueError -- timeout_msに0または負の値が指定された場合
- Example:
last_recv = automeal.wait_for_next_serial_data("Port1", 5000) # Port1 で次に受信するまで待機。5秒受信なしの場合例外エラー。
- automeal.write_analog_amao(board_id: str, channel_number: int, voltage_mv: int)[source]¶
AM-AO の出力電圧値を更新します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-8)
voltage_mv (int) -- 電圧値 [mV] (0-基準電圧)。 上限は TestUnit 設定で設定している基準電圧によって変化します。
- Example:
automeal.write_analog_amao("Board1", 1, 5000) # Board1 の ch1 を 5000 mV に
- automeal.write_logic_cpidio0808l(board_id: str, channel_number: int, state: bool)[source]¶
CPI-DIO-0808L の出力状態値 (Hi/Lo) を更新します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-8)
state -- チャンネルの状態 Hi(True)/Lo(False)
- Example:
automeal.write_logic_cpidio0808l("Board1", 1, True) # Board1 の ch1 を Hi に
- automeal.write_logic_cpidio0808l_bits(board_id: str, state: int)[source]¶
CPI-DIO-0808L の出力状態値 (Hi/Lo) を更新します。
- Parameters:
board_id (str) -- ボード ID
state (int) -- 8ch 分の出力状態値 (0x00-0xFF)(Hi=1/Lo=0)
- Example:
automeal.write_logic_cpidio0808l_bits("Board1", 0xFF) # Board1 8ch 全てを Hi に
- automeal.write_logic_cpidio0808l_multi(board_id: str, states: list)[source]¶
CPI-DIO-0808L の出力状態値 (Hi/Lo) を更新します。
- Parameters:
board_id (str) -- ボード ID
states -- 8ch 分の出力状態値 Hi(True)/Lo(False)/更新なし(None)
- Example:
automeal.write_logic_cpidio0808l_multi("Board1", [True, True, None, None, False, False]) # Board1 の ch1,ch2 を Hi, ch5,ch6 を Lo, それ以外は現状維持
8ch未満の場合、未指定分は None として扱われます。 8chを超える指定の場合、超えた分は無効になります。
- automeal.write_logic_cpirry16(board_id: str, channel_number: int, state: bool)[source]¶
CPI-RRY-16 の出力状態値 (ON/OFF) を更新します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-16)
state -- チャンネルの状態 ON(True)/OFF(False)
- Example:
automeal.write_logic_cpirry16("Board1", 1, True) # Board1 の ch1 を ON に
- automeal.write_logic_cpirry16_bits(board_id: str, state: int)[source]¶
CPI-RRY-16 の出力状態値 (ON/OFF) を更新します。
- Parameters:
board_id (str) -- ボード ID
state (int) -- 16ch 分の出力状態値 (0x0000-0xFFFF)(ON=1/OFF=0)
- Example:
automeal.write_logic_cpirry16_bits("Board1", 0xFFFF) # Board1 16ch 全てを ON に
- automeal.write_logic_cpirry16_multi(board_id: str, states: list)[source]¶
CPI-RRY-16 の出力状態値 (ON/OFF) を更新します。
- Parameters:
board_id (str) -- ボード ID
states -- 16ch 分の出力状態値 ON(True)/OFF(False)/更新なし(None)
- Example:
automeal.write_logic_cpirry16_multi("Board1", [True, True, None, None, False, False]) # Board1 の ch1,ch2 を ON, ch5,ch6 を OFF, それ以外は現状維持
16ch未満の場合、未指定分は None として扱われます。 16chを超える指定の場合、超えた分は無効になります。
- automeal.write_logic_rpigp10(board_id: str, channel_number: int, state: bool)[source]¶
RPi-GP10 の出力状態値 (Hi/Lo) を更新します。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-8)
state -- チャンネルの状態 Hi(True)/Lo(False)
- Example:
automeal.write_logic_rpigp10("Board1", 1, True) # Board1 の ch1 を Hi に
- automeal.write_logic_rpigp10_bits(board_id: str, state: int)[source]¶
RPi-GP10 の出力状態値 (Hi/Lo) を更新します。
- Parameters:
board_id (str) -- ボード ID
state (int) -- 8ch 分の出力状態値 (0x00-0xFF)(Hi=1/Lo=0)
- Example:
automeal.write_logic_rpigp10_bits("Board1", 0xFF) # Board1 8ch 全てを Hi に
- automeal.write_logic_rpigp10_multi(board_id: str, states: list)[source]¶
RPi-GP10 の出力状態値 (Hi/Lo) を更新します。
- Parameters:
board_id (str) -- ボード ID
states -- 8ch 分の出力状態値 Hi(True)/Lo(False)/更新なし(None)
- Example:
automeal.write_logic_rpigp10_multi("Board1", [True, True, None, None, False, False]) # Board1 の ch1,ch2 を Hi, ch5,ch6 を Lo, それ以外は現状維持
8ch未満の場合、未指定分は None として扱われます。 8chを超える指定の場合、超えた分は無効になります。
- automeal.write_pwm_ampio(board_id: str, channel_number: int, frequency_hz: int, duty_percent: float)[source]¶
AM-PIO の出力 PWM 信号の周波数とデューティー比を更新します。 duty_percent はプロジェクトの設定によって分解能以下は切り捨てられます。
- Parameters:
board_id (str) -- ボード ID
channel_number (int) -- チャンネル番号 (1-4)
frequency_hz (int) -- 周波数 [Hz] (0-1,000,000)。 上限は TestUnit 設定で設定している最大周波数によって変化します。
duty_percent (float) -- デューティー比 [%] (0.0-99.9)。 TestUnit 設定で設定している最大周波数 (Duty 分解能) によって値が切り捨てられます。
- Example:
automeal.write_pwm_ampio("Board1", 1, 10000, 50) # Board1 の ch1 を 10,000 Hz, 50 % に