Windowsのスタートボタンを探してクリックするスクリプト
import pyautogui
winstart_x,winstart_y = pyautogui.locateCenterOnScreen('C:\Program Files\Python27\winstart.PNG')
pyautogui.moveTo(winstart_x,winstart_y)
pyautogui.click(winstart_x,winstart_y)
pyautogui.typewrite('python\n', 0)
画像ファイル winstart.PNGをPython27の下に置いておく。
ベクトル同士をかけると行列になる件
今日わかったこと。
xnxTnは
[x0,0x0,1][x0,0x0,1]と思っていたが、実は
[x0,0x0,1][x0,0x0,1]だった。
参考にしたWebページ http://www.snap-tck.com/room04/c01/matrix/matrix02.html
python memo
複数変数を同じ行でprintするには
print('{0} and {1}'.format(x,y))
日本語でコメントを書くにはスクリプトの先頭に
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print('{0} and {1}'.format(x,y))
日本語でコメントを書くにはスクリプトの先頭に
#!/usr/bin/env python
# -*- coding: utf-8 -*-
変数一覧を取得するpythonスクリプト
import win32com.client
from win32com.client import Dispatch
from win32com.client import DispatchWithEvents
CDApp = Dis
patch("ControlDeskNG.Application")
CDVariables = CDApp.ActiveExperiment.Platforms.Item(0).ActiveVariableDescription.Variables
len(CDVariables)
>>21754
for i in range(len(CDVariables)):
print str(i) + str(CDVariables.Item(i).Identifier.UniqueName)
全て表示される。
↓変数のフルパスをItemに渡すこともできる。
myVariable=CDApp.ActiveExperiment.Platforms.Item(0).ActiveVariableDescription.Variables.Item("Model Root/MDL/Environment/Road/xy2GPS/xy2GPS/Gain/Gain")
myVariable.ValueConverted
>>0.017453292519943295
from win32com.client import Dispatch
from win32com.client import DispatchWithEvents
CDApp = Dis
patch("ControlDeskNG.Application")
CDVariables = CDApp.ActiveExperiment.Platforms.Item(0).ActiveVariableDescription.Variables
len(CDVariables)
>>21754
for i in range(len(CDVariables)):
print str(i) + str(CDVariables.Item(i).Identifier.UniqueName)
全て表示される。
↓変数のフルパスをItemに渡すこともできる。
myVariable=CDApp.ActiveExperiment.Platforms.Item(0).ActiveVariableDescription.Variables.Item("Model Root/MDL/Environment/Road/xy2GPS/xy2GPS/Gain/Gain")
myVariable.ValueConverted
>>0.017453292519943295
Bus Creatorで信号名を表示させるために
Bus Creatorにつながる信号線に名前をつけると、Bur Creatorのダイアログの中で名前が表示される。
信号線に名前がついていないと、Signal みたいな感じで表示される。
信号線に名前がついていないと、Signal みたいな感じで表示される。
dSPACE Real-Time Test Managerの使い方
スタートメニューから dSPACE Real-Time Test Managerを起動
↓起動後の画面
プラットフォームを登録する 。
Tools > Register Platform...
次にアプリケーション名を右クリックして Create Sequence...を選択する。
ダイアログが開くので、ファイルを選択するため ... をクリックする。
↓予め作成しておいた realtime testing 用のpython スクリプトを選択する。
↓Createをクリックする。
.bcgファイルが生成され、シーケンスが登録された。
シーケンス名を右クリックしてRunを選択
↓起動後の画面
プラットフォームを登録する 。
Tools > Register Platform...
ここではVEOSを選択してRegister のボタンをクリック。
↓Registerされた。
CONTROLDESK側でGo Onlineをクリック(予めCONTROLDESKのプロジェクトを作っておく)。
↓Go Online後の画面。アプリケーションがロードされている。
↓Real-Time Test Manager側でもアプリケーション(ここでは model_for_data_replay)がロードされている。
↓アプリケーション名(model_for_data_replay)の部分を右クリックしてConnectを選択
右側に"Board"が表示される。
ダイアログが開くので、ファイルを選択するため ... をクリックする。
↓予め作成しておいた realtime testing 用のpython スクリプトを選択する。
↓Createをクリックする。
.bcgファイルが生成され、シーケンスが登録された。
シーケンス名を右クリックしてRunを選択
StatusがRunningに変わり、CONTROLDESK側で信号再生が始まる。
(この例ではRTTのシーケンスがMATファイルの信号再生なので)
(予めCONTROLDESK側でStart Measuringしておく)
CONTROLDESKのレイアウト上のボタンからRTTの信号再生を開始させる方法
下のようなモデルを作ってビルドしておく。
CONTROLDESKのレイアウト上にボタンPush buttonを置く。
見た目を修正
右クリックメニューで Configure Events...
ダブルクリックする。
冒頭に以下のスクリプトを書く。
print "On_Application_LayoutManagement_Layout1_Push0020Button_1_ButtonClicked " の上に以下のスクリプトを書く。
↓完成したスクリプト
time plotterをレイアウトに置き、Constant のOutを紐付ける。
↓Start Measuringをクリックして計測開始。

Constant1ブロックで設定した値1が出力されている。
CONTROLDESKのレイアウト上にボタンPush buttonを置く。
見た目を修正
右クリックメニューで Configure Events...
ダブルクリックする。
下のようにdef文が挿入される。
冒頭に以下のスクリプトを書く。
import thread
import win32api
from time import sleep
import rttmanagerlib
from win32com.client import Dispatch, DispatchWithEvents
import os
import win32com.client
import pythoncom
print "On_Application_LayoutManagement_Layout1_Push0020Button_1_ButtonClicked " の上に以下のスクリプトを書く。
(r"C:\Users\********\Documents\... の******のところは自分の環境に合わせる。)
def thread_mat_replay():
print "thread mat replay was called."
pythoncom.CoInitialize()
rttm = rttmanagerlib.RealTimeTestManagerServer()
Board = rttm.AccessBoard("127.0.0.1")
BCGFileName = r"C:\Users\********\Documents\MATLAB\_20180420_array_operate\datareplay.bcg"
Sequence = Board.Sequences.Create(BCGFileName)
Sequence.Run()
pythoncom.CoUninitialize()
print "On_Application_LayoutManagement_Layout1_Push0020Button_1_ButtonClicked " の下に以下のスクリプトを書く。
thread.start_new_thread(thread_mat_replay,())
↓完成したスクリプト
↓Start Measuringをクリックして計測開始。
Constant1ブロックで設定した値1が出力されている。
「再生」ボタンをクリックするとMATファイルの信号の再生が開始される。
interactive python using subprocess
Python script
C program for command prompt
import subprocess
from subprocess import Popen, PIPE, STDOUT
import time
cmd2_2 = 'askbirthmonth2.exe'
the_directory = "C:/MinGW/msys/1.0/home/****"
p = Popen(cmd2_2.split(), shell=True, stdin=PIPE, cwd = the_directory,stdout=PIPE)
print p.stdout.readline()
time.sleep(3)
p.stdin.write("10\n")
print p.stdout.readline()
from subprocess import Popen, PIPE, STDOUT
import time
cmd2_2 = 'askbirthmonth2.exe'
the_directory = "C:/MinGW/msys/1.0/home/****"
p = Popen(cmd2_2.split(), shell=True, stdin=PIPE, cwd = the_directory,stdout=PIPE)
print p.stdout.readline()
time.sleep(3)
p.stdin.write("10\n")
print p.stdout.readline()
C program for command prompt
#include
int main(void)
{
int birthmonth;
printf("what is your birth month?\n");
fflush(stdout);
scanf("%d", &birthmonth);
printf("your birth month is %d.\n",birthmonth);
return 0;
}
int main(void)
{
int birthmonth;
printf("what is your birth month?\n");
fflush(stdout);
scanf("%d", &birthmonth);
printf("your birth month is %d.\n",birthmonth);
return 0;
}
AutomationDeskで波形をキャプチャーする方法
ポイント

Project ManagerのProjectを右クリックして、NewDataObject からMAPortを選択して追加します。

同様にMAPortConfigurationも追加します。

ProjectManagerの中のMAPortConfigurationをダブルクリックすると下のように、Platformとsdfファイルを選択する画面になる。

VEOSを選択する。

先ほどのSimulinkモデルをVEOS向けにビルドしてできたsdfファイルを選択する。

Showボタンを押すと...

モデル変数などがツリー構造で表示される。

次にMappingオブジェクトを追加する。

Mapping Viewerでの表示。変数はまだ何も表示されていない。

Mapping Viewerの空白のところで右クリック、Editを選択。

Mapping Editorが表示される。

モデルのツリー構造が現れる。

真ん中のペインの変数を右のペインにドラッグドロップする。そしてMapping Editorを閉じる。

Mapping Viewerに変数が表示されている。

次に、CaptureとCaptureResultオブジェクトを追加する。

追加したあと。

次に、String型とList型のオブジェクトを追加する。

オブジェクトの名前を下記のように変える。

TaskNameをダブルクリックして、ValueEditorで Periodic Task 1と入力する。

Mapping ViewerでAlias名をコピーする。

List型オブジェクトSignalNamesのメンバーとしてコピーしたエイリアス名をペーストする。

TestBuilderライブラリからTestCaseをプロジェクトにドラッグドロップする。

TestCaseを追加したあと。

TestCaseを開いて中身を確認。これが初期状態。

InitializationのOperationのところにXIL Convenience ライブラリからLoadSimulationApplicationブロックを追加する。

次にInitMAPortをLoadSimulationApplicationブロックの下に追加する。

CleanupのOperationのところにReleaseMAPortを追加する。


VEOSをレジスターする。

↓レジスタできたときの表示。

ここでテストを実行してみる。

レポートが生成される。白地のハテナマークは、テスト自体は実行されたが、合否判定がされなかったことを意味する。

↓レポートの中身。

↓のシーケンスを参考に、Captureに関する各ブロックをXIL ConvenienceライブラリからDragDropしていく。



InitializeCaptureのTaskNameのところは、DataObjectのTaskNameを参照する。

VariablePoolはMappingオブジェクトを参照する

VariablesはSignalNamesを参照する。








- Test Builderライブラリを使用する。
- XIL Mappingを使用する。
- AUDプロジェクトでの準備
- AUDプロジェクトにMAPortオブジェクト、MAPortConfigurationオブジェクト、Mappingオブジェクト、Captureオブジェクト、CaptureResultオブジェクト、Stringオブジェクト、Listオブジェクトを追加する。
- MAPortConfigurationオブジェクトで、sdfファイルを読み込む。
- Mappingオブジェクトで、変数を指定する。
- StringオブジェクトにTaskNameを入れる。
- Listオブジェクトに信号名を入れる。
- シーケンスの準備
- TestBuilderライブラリからTestCaseブロックをプロジェクトにドラッグドロップし、ダブルクリックする。
- Initializationの中に、LoadSimulationApplication、InitMAPortの順にブロックを置く。
- Cleanupの中にReleaseMAPortブロックを置く。

Project ManagerのProjectを右クリックして、NewDataObject からMAPortを選択して追加します。

同様にMAPortConfigurationも追加します。

ProjectManagerの中のMAPortConfigurationをダブルクリックすると下のように、Platformとsdfファイルを選択する画面になる。

VEOSを選択する。

先ほどのSimulinkモデルをVEOS向けにビルドしてできたsdfファイルを選択する。

Showボタンを押すと...

モデル変数などがツリー構造で表示される。

次にMappingオブジェクトを追加する。

Mapping Viewerでの表示。変数はまだ何も表示されていない。

Mapping Viewerの空白のところで右クリック、Editを選択。

Mapping Editorが表示される。

モデルのツリー構造が現れる。

真ん中のペインの変数を右のペインにドラッグドロップする。そしてMapping Editorを閉じる。

Mapping Viewerに変数が表示されている。

次に、CaptureとCaptureResultオブジェクトを追加する。

追加したあと。

次に、String型とList型のオブジェクトを追加する。

オブジェクトの名前を下記のように変える。

TaskNameをダブルクリックして、ValueEditorで Periodic Task 1と入力する。

Mapping ViewerでAlias名をコピーする。

List型オブジェクトSignalNamesのメンバーとしてコピーしたエイリアス名をペーストする。

TestBuilderライブラリからTestCaseをプロジェクトにドラッグドロップする。

TestCaseを追加したあと。

TestCaseを開いて中身を確認。これが初期状態。

InitializationのOperationのところにXIL Convenience ライブラリからLoadSimulationApplicationブロックを追加する。

次にInitMAPortをLoadSimulationApplicationブロックの下に追加する。

CleanupのOperationのところにReleaseMAPortを追加する。


VEOSをレジスターする。

↓レジスタできたときの表示。

ここでテストを実行してみる。

レポートが生成される。白地のハテナマークは、テスト自体は実行されたが、合否判定がされなかったことを意味する。

↓レポートの中身。

↓のシーケンスを参考に、Captureに関する各ブロックをXIL ConvenienceライブラリからDragDropしていく。



InitializeCaptureのTaskNameのところは、DataObjectのTaskNameを参照する。

VariablePoolはMappingオブジェクトを参照する

VariablesはSignalNamesを参照する。








Popular Posts
-
Signal Description Setの作り方 まずSignal Description Setsのフォルダを見つけます。 右クリックしてNew SignalSet.stzが生成された。 画面中央にSignalSetのビュ...
-
前提 とりあえずSCALEXIO I/Oボードを使わない。 ProcessingUnit上でモデルを演算することのみを行う。 手順 まずSimulinkで簡単なモデルを作成する。 ConfigurationDeskを起動する。Implementation Vers...
-
下のようなモデルを作ってビルドしておく。 CONTROLDESKのレイアウト上にボタンPush buttonを置く。 見た目を修正 右クリックメニューで Configure Events... ダブルクリックする。 下のようにdef...
-
ポイント Test Builderライブラリを使用する。 XIL Mappingを使用する。 AUDプロジェクトでの準備 AUDプロジェクトにMAPortオブジェクト、MAPortConfigurationオブジェクト、Mappingオブジェクト、Captureオブ...
-
dSPACEツールの使い方を分かり易く書いていこうと思います。
-
Bus Creatorにつながる信号線に名前をつけると、Bur Creatorのダイアログの中で名前が表示される。 信号線に名前がついていないと、Signal みたいな感じで表示される。
-
下準備 下図のようなExcelを作っておく。 Desktop上に保存しておく。 AutomationDeskで新しいプロジェクトを作成し、Sequence、String(3個)、 Floatの各オブジェクトを作成する。 分かりやすいようStringオブジェクトの名前を...
-
こんなMeasurement Dataがあったとする。 Signal Segmentを新しく作る。 Data Fileをドラッグ&ドロップする。 Property の File nameの ... のボタンをクリックする。 S...
-
スタートメニューから dSPACE Real-Time Test Managerを起動 ↓起動後の画面 プラットフォームを登録する 。 Tools > Register Platform... ここではVEOSを選択してRegister ...
-
import win32com.client Sheet = None Workbook = None ExcelAppl = None try: ExcelAppl = win32com.client.Dispatch('Excel.Application...
About Me
Blog Archive
Labels
- featured ( 1 )
Labels
Recent Comments
Recent Post
Video Of Day
Recent
Ad Banner
Popular Posts
-
Signal Description Setの作り方 まずSignal Description Setsのフォルダを見つけます。 右クリックしてNew SignalSet.stzが生成された。 画面中央にSignalSetのビュ...
-
前提 とりあえずSCALEXIO I/Oボードを使わない。 ProcessingUnit上でモデルを演算することのみを行う。 手順 まずSimulinkで簡単なモデルを作成する。 ConfigurationDeskを起動する。Implementation Vers...
-
下のようなモデルを作ってビルドしておく。 CONTROLDESKのレイアウト上にボタンPush buttonを置く。 見た目を修正 右クリックメニューで Configure Events... ダブルクリックする。 下のようにdef...
-
ポイント Test Builderライブラリを使用する。 XIL Mappingを使用する。 AUDプロジェクトでの準備 AUDプロジェクトにMAPortオブジェクト、MAPortConfigurationオブジェクト、Mappingオブジェクト、Captureオブ...
-
dSPACEツールの使い方を分かり易く書いていこうと思います。
-
Bus Creatorにつながる信号線に名前をつけると、Bur Creatorのダイアログの中で名前が表示される。 信号線に名前がついていないと、Signal みたいな感じで表示される。
-
下準備 下図のようなExcelを作っておく。 Desktop上に保存しておく。 AutomationDeskで新しいプロジェクトを作成し、Sequence、String(3個)、 Floatの各オブジェクトを作成する。 分かりやすいようStringオブジェクトの名前を...
-
こんなMeasurement Dataがあったとする。 Signal Segmentを新しく作る。 Data Fileをドラッグ&ドロップする。 Property の File nameの ... のボタンをクリックする。 S...
-
スタートメニューから dSPACE Real-Time Test Managerを起動 ↓起動後の画面 プラットフォームを登録する 。 Tools > Register Platform... ここではVEOSを選択してRegister ...
-
import win32com.client Sheet = None Workbook = None ExcelAppl = None try: ExcelAppl = win32com.client.Dispatch('Excel.Application...