15.6.2 DTSL オプションサンプルのウォークスルー

以下に、Keil MCBSTM32E プラットフォームの Jython スクリプトを簡略化した例を示します。

1.class DSTREAMDebugAndTrace(DTSLv1):
2.'''A top level configuration class which supports debug and trace'''
3.
4.@staticmethod
5.def getOptionList():
6.'''The method which specifies the configuration options which
7.the user can edit via the launcher panel |Edit...| button
8.'''
9.return [
10.DTSLv1.tabSet(
11.name='options',
12.displayName='Options',
13.childOptions=[
14.DSTREAMDebugAndTrace.getTraceBufferOptionsPage(),
15.DSTREAMDebugAndTrace.getETMOptionsPage(),
16.DSTREAMDebugAndTrace.getITMOptionsPage()
17.]
18.)
19.]

行 4 で、保持するクラスの静的メソッドとしてメソッドをマークします。こうすることで、クラスのインスタンスが存在する前に呼び出すことができます。また、クラスのインスタンスに関連付けられている self (this) がないため、呼び出される任意のメソッドも静的メソッドであることも示しています。行 5 は、静的メソッドを名前 getOptionList で定義しています。この静的メソッドが存在する場合はコンフィギュレーションにオプションがありますが、この静的メソッドが存在しない場合にはオプションはありません。行 10 は、名前 'options'、表示名 'Options'、および子オプションの配列を持つ TabSet オブジェクトを作成します。この例では、別の静的メソッドを呼び出すことによりそれぞれの子オプションが作成されています。

注:

複数の静的メソッドを使用して子オプションを指定するとわかりやすくなる場合があります。こうすることにより、括弧のネストレベルが深くなってわかりにくくなるのを防ぎ、間違った場所に間違った種類の括弧を使用するのを簡単に防ぐことができます。

以下のコード抽出は getTraceBufferOptionsPage メソッドを示しています。

1.@staticmethod
2.def getTraceBufferOptionsPage():
3.return DTSLv1.tabPage(
4.name='traceBuffer',
5.displayName='Trace Buffer',
6.childOptions=[
7.DTSLv1.enumOption(
8.name='traceCaptureDevice',
9.displayName='Trace capture method',
10.defaultValue='none',
11.values=[
12.('none', 'No trace capture device'),
13.('DSTREAM', 'DSTREAM 4GB Trace Buffer')
14.]
15.),
16.DTSLv1.booleanOption(
17.name='clearTraceOnConnect',
18.displayName='Clear Trace Buffer on connect',
19.defaultValue=True
20.),
21.DTSLv1.booleanOption(
22.name='startTraceOnConnect',
23.displayName='Start Trace Buffer on connect',
24.defaultValue=True
25.),
26.DTSLv1.enumOption(
27.name='traceWrapMode',
28.displayName='Trace full action',
29.defaultValue='wrap',
30.values=[
31.('wrap', 'Trace wraps on full and continues to store data'),
32.('stop', 'Trace halts on full')
33.]
34.)
35.]
36.)

注:

コードではネストとインデントを使用して、閉じ括弧の種類を把握しやすくしています。

行 3 で「traceBuffer」という名前のタブページを作成します。これには子オプションの配列があります。これらの子オプションは GUI 内のタブページに表示されます。子オプションの操作を行うことで、子オプションがユーザにどのように表示されるかがわかりやすくなります。行 7 で enum オプションを作成します。これは、その値が一連の定義済みの値の 1 つであり、通常はドロップダウンリストボックスとしてユーザーに表示されるオプションです。リストボックスには定義済みの値が表示され、ユーザはそのいずれかを選択します。値は文字列のペアとして指定されます。最初の文字列は内部値、2 番目の文字列はユーザに表示されるテキストです。行 16 ~行 21 でブールオプションを作成します。これらは true か false、または on か off のオプションで、通常はチェックボックスの GUI 要素としてユーザに表示されます。

以下の図は、DS-5 がタブセットとタブページをどのように表示するかを示しています。

図 15-11 DSTREAM トレースオプション
DSTREAM トレースオプション


詳細については、DTSLExampleConfigdb プロジェクトの Keil のサンプルの完全なソースコードを参照して下さい。

非機密扱いPDF file icon PDF 版ARM DUI0446ZJ
Copyright © 2010–2016 ARM.All rights reserved.