作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
お問い合せありがとうございます。
[システム情報]コンポーネントのメソッド「getSystemProperty(String)」をお試しいただいているかと思います。ユーザー名取得の引数は「user.name」で結構です。
WindowsOSのローカルで作られるユーザー名は2種類あり「ローカルアカウントのユーザー名」と「ユーザーネームのフルネーム」のうち、上記メソッドでは「・・・ユーザー名」の方が取得されます。
しかし、「ユーザーネームのフルネーム」を設定済みだった場合、コントロールパネルからの変更だけではフルネームのみ変更されるようです。
外部のサイトになりますが、こちらが参考になるかと思います。
https://jp.ext.hp.com/techdevice/windows10sc/26/ (日本HP Tech&DeviceTV 『Windows 10 のユーザー名を変更するには?アカウントの種類とそれぞれの変更方法を紹介』)[システム情報]の「ホスト名を取得する()」ですと、MZを実行しているマシーンのデバイス名が取得されます。
以上ご検討いただき、解決されない場合は、お手数ですが再度ご連絡ください。
どうぞよろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 2 年, 5 ヶ月 前 に編集されました。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
設定ファイルは、アプリケーション自体は変更せず設定ファイルの中身を書き換えることで動きの変更をすることができ、Javaプログラム以外でも広く使われていますが、決まった書式はあります。名前(キー)=値という書式になっていて、[セクション名]を指定する場合もあります。どんな「キー名」、「セクション名」を指定するかは決まりはなく、アプリケーションことに独自に決められています。
IotEdgeApp.mzaxの[設定ファイル管理]複合コンポーネントが呼び出されている箇所では、キー名を指定して設定データを取得する処理を行っています。MZPlatformにはキーと値をペアにして格納できる[マップ格納変数]があり、キー名による値の取得・設定を行うことができます。
以上、ご不明な点がございましたら、どうぞ再度ご連絡ください。よろしくお願いいたします。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
mzapp.iniはテキスト形式の設定ファイルです。「メモ帳」等で開いて中身を確認することができます。
特に『MZ講習資料IOTエッジ編』P64にあるように、アプリから状態認識結果のデータをデータベースに格納していますが、そのデータベースの接続情報をこのファイルで設定しています。
また、入出力テーブルとして表示されている起動時のPINモードも、このファイルで設定されています。MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
『MZ講習資料IoTエッジ編.pdf』P49にあるとおり、現在のバージョンではメニューには出てきませんが標準で含まれています。
追加方法が判りにくくご不便をお掛けいたしますが、新規に追加する方法は以下の2つがあります。
1.コンポーネント追加の際、[クラス指定…]を選び、入力窓に「jp.go.aist.dmrc.platform.beans.io.PFFirmataConnector」と入力します。
2.アプリケーションビルダー―を二つ起動します。片方で[Firmata通信]が使われているアプリケーションをロードし、編集画面左側にある接続元コンポーネントの[Firmata通信]をコピーします。もう一つのビルダー編集画面で右クリック>貼り付けをします。ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 2 年, 5 ヶ月 前 に編集されました。
- この返信は、 MZPlatformユーザー会 により、 2 年, 5 ヶ月 前 に編集されました。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
[コンボボックス]は項目選択後に特に処理を行わなければ、選択位置の移動はありませんが、
アプリケーション実行中に選択位置/選択項目ラベルを記憶しておきたいというのであれば[文字列格納変数]に設定しておくことが考えられます。コンボボックスに要素を追加し、それを選択したいということであれば、[リスト格納変数]に一旦追加すると便利です。
動作確認のため簡単なサンプルファイルを添付いたしますので、ご参考になれば幸いです。
MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
お送りいただいた処理では、[データベースアクセス]の「データベースに接続する(Stirng,Stiring,String,String)」の引数が4つとも同じ設定になっていました。
引数1~4にはそれぞれ、データベースのドライバ名、サーバ名、ユーザ名、パスワードを設定します。
メソッドの公開はされていますので、チュートリアルP7の表にあるように、公開メソッド名を変更すると判りやすいかと思います。複合コンポ―ネントの公開メソッドを他階層から呼び出す場合、値の取得元は複合コンポーネントとなり、元々どのコンポーネントから取得したかは判別できなくなります。これを防ぐため、同名のメソッドを複数公開した場合など、必要に応じてメソッド名を変更します。変更には、公開メソッドの名前の上で右クリック>公開メソッド名変更を選び、出てくる窓にメソッド名を入力します。テキスト通りに公開メソッド名を変更した場合、引数の「メソッド/値」欄は
引数1:ドライバ名を取得する
引数2:データベースの URL を取得する
引数3;ユーザ名を取得する
引数4:パスワードを取得する
となります。以上、ご検討いただき、ご不明な点がございましたら再度ご連絡いただければ幸いです。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
申し訳ございませんがMZプラットフォームのアプリケーションファイルをそのまま添付すると、アップロードエラーになってしまいます。大変お手数ですが、zipファイル等に圧縮して再度ご送信ください。また、どのようなエラーメッセージが出ているかも手掛かりになります。
ドライバーの文字列が違っていると『claassNotFoundException』が発生します。
サーバ名またはデータベース名、あるいはパスワードが違っていると『Could not Connect to adress=・・・』といったメッセージになります。
データベース名とサーバ名は[文字列格納変数]で一つの文字列にしていますから、この処理が違っている可能性もあります。エラーメッセージも併せてお知らせいただけると幸いです。よろしくお願い申し上げます。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
「 replaceFirst(String,String)」には、 [文字列格納変数]内の文字列中に最初に出てくる文字列または正規表現を別の文字列に置換えた結果を取得する機能があります。
例えば、(1)まず[文字列格納変数]に文字列『ABCDBE』を設定します。(2)その後「 replaceFirst(String,String)」の引数1に被置換え文字列(例:B)、引数2には置換えたい文字列(例:FFFF)を指定し、実行します。(3)その後の処理において、取得方法「メソッド処理結果」で『AFFFFCDBE』という値を利用できます。
2番目に出てくる『B』は置換えられません。また、変数内の値はそのままで、置換結果の取得のみが可能です。テキストでは品名[テキストフィールド]の文字列の長さが0以上の場合、既入力のデータがあると判断し、(1)[文字列格納変数]に『注文内容「X」が上書きされます。よろしいですか?』を設定します。文字列格納変数に値が設定されると、「データ設定イベント」が発生します。(2)「データ設定イベント」に[文字列格納変数]を接続し「 replaceFirst(String,String)」を実行します。引数2の値の取得元コンポーネント:[文字列格納変数]には品名[テキストフィールド]の入力内容が入っています。
[文字列格納変数]の日本語化されているメソッド「指定文字列と一致する最初の文字列を置換する(simpleReplaceFirstThenReplace)(String,String)」と機能は近いですが、こちらは正規表現は使用できないことと、置換結果を変数に再設定するところが違います。変数の値が変わり、データ設定ベントも発生します。
テキストでは「データ設定イベント」に[文字列格納変数]を接続しているため、値を再設定する「ThenReplace」のメソッドだと繰り返し処理が呼び出される恐れがあり、ここでは使っていません。以上、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会サイト管理者申し訳ありませんが、両方とも資料は準備しておりません。
特に、Firmata通信については外部ライブラリ(Firmata4j)を用いて機能を使用しているだけですので、その意味についての説明はできかねます。概要としてはPCと機器の間の通信で用いられる方式の一種という説明でご容赦いただき、それ以上の詳細につきましてはインターネット検索等でお調べください。
一方、MZアプリ内の「設定ファイル管理」は複合コンポーネントですので、詳細な処理は内部までご確認いただけます。その利用方法はMZアプリ内でのメソッド呼び出しとそのコメントを参照していただければ把握できると思いますし、内部処理で用いているコンポーネントの使い方については、ご不明点をお問い合わせいただければ回答いたします。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
ファイルの名前の取得には、[ファイル]コンポ―ネントのメソッド「配下に存在するファイル名称を取得()」または、「直下に存在するファイル名称取得()」を使用します。前者のメソッドはサブフォルダー内のファイル名まで取得されますが、後者は直下のサブフォルダ名とファイル名が取得され、サブフォルダー内のファイル名は取得しません。両方とも絶対パス名で取得されます。ファイル名の一覧はリスト形式です。[テーブル]にも[リスト]にも設定して表示できます。
また、ファイルのコピーはメソッド「指定のディレクトリへコピー(ファイル名は同名)(String)」一つずつでもできますが、「指定のディレクトリへコピー(ディレクトリ名は同名)(String)」で一括してコピーも可能です。ファイル名を変更して保存したい場合は、「copyFile(String,String)」をお試しください。
動作確認のため、簡単なサンプルファイルを添付いたしますので、ご参考になれば幸いです。
-
著者投稿