フォーラムへの返信
-
投稿者投稿
-
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)」をお試しください。
動作確認のため、簡単なサンプルファイルを添付いたしますので、ご参考になれば幸いです。
MZPlatformユーザー会キーマスターP.36とP.39ではA6(20番)で明るさを見るという説明なので、回路図に線が書き込まれていませんが、実は右側の写真でA7(21番)とGNDがオレンジ色のジャンプワイヤで接続されています。P.53の回路図はそれが反映された状態です。
これがないと、P.37のテーブルおよびP.38とP.40のグラフの21番に0ではない数字が不規則に表示され、グラフのバーが小刻みに動きます。講習などをしているとその動きが目障りなため、このような対応をしております。
MZPlatformユーザー会キーマスターMZアプリでデータベースにデータを記録して、別のMZアプリでグラフを表示するということでよければ、データ記録はIoTEdgeAppにまかせて表示方法を個別に作成すればよいことになります。
データ表示用のMZサンプルアプリの使い方は、ツールキット配布版のserverフォルダにあるMZ講習資料IoTサーバ編PDFに書かれていますが、それ以上の説明は準備しておりません。
実現したい内容を伺っている範囲では、やはり独自の作りこみが必要だと思いますので、少しずつ掲示板で質問していただくか、技術コンサルティング制度の活用等をご検討いただければと思います。
MZPlatformユーザー会キーマスター2と3につきまして、確認させてください。
実現したい内容としては、MZアプリIoTEdgeApp単体で(特に修正せずに)、取得データの表示をしたいということでしょうか。3が終了で解決したということですが、もしそうであれば、2はできませんという回答になります。このMZアプリはサンプルですので、特に可視化機能を独自で変えたい場合は、ご自身で作成することになります。
一方、このMZアプリ配布の意図としては、ルールに基づいてMySQL等のデータベースに登録するところまでをサンプルだけで実現する点にあります。データベースに登録すれば、あとは可視化アプリを作成するだけになりますので、少しハードルが下がりますし、そのサンプルMZアプリもあります。何かデータベースが使えない事情があるでしょうか。
MZPlatformユーザー会キーマスター大変お手数をお掛けしております。
『コンポーネントリファレンス』の右側が白紙になっている時はMicrosoftEdgeのモードですが、IEモードで再読み込みすると表紙に戻ってしまう場合があります。
その際に、再度左側コンポーネント名をクリックしてみてください。また、MicrosoftEdgeで「InternetExploreモードで再読み込みする」とアドレスバーのところに青い「IEマーク」が表示されていて、クリックすると添付の画像のように小さいダイアログが表示されます。『次回、このページをInternetExploreモードで開く』のボタンがありますので、ここを有効にするとInternetExploreモードが持続されるかと思います。
また、上記上手くいかない場合は、以下もお手数ですがお試しください。WindowsスタートメニューのMZplatformのメニューから『ドキュメントインデックス』が表示できます。これはHTML文書でブラウザで表示されると思います。表示直後にIEモードに変更して、上から7番目の『コンポーネントリファレンス』をクリックすると同じ文書が開かれます。
また、コンポーネントのクラス名だけでしたら、アプリケーションビルダー編集画面上の左側コンポーネントを右クリック>[コンポーネント情報表示]でクラス名等表示され、オプションメニューの[コンポーネント情報編集]でも確認できます。
ご不便をお掛けいたしますが、どうぞよろしくお願いいたします。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
お送りいただいた画像のような状態になってしまった場合は、もう一度左側のコンポーネント名をクリックしてください。そうすると添付の画像の1番のような表示になるかと思います。
メソッドを調べる場合にはクラス名をクリックしてください。
画像2番のような画面が別タブで表示されます。各コンポーネントで使用できるメソッド名は下の方にスクロールすると出てきます(画像3)。詳しく見る場合はメソッド名をクリックします(画像4)。
以上、お試しいただいても上手く表示されない場合は、どうぞ再度ご連絡ください。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
[複合コンポ―ネント]を使う場合は[コンポーネント格納変数]のメソッド「条件指定で下位のコンポーネントを取得する(String,String)」が便利です。引数1にはクラス名、引数2にはコンポーネントkeyを指定します。[アプリケーション]あるいは[複合コンポーネント]を対象にこのメソッドでコンポーネントオブジェクトが取得できます。[コンポーネント格納変数]に目的のコンポーネントを設定すれば、メソッドの公開は必要ありません。また、[コンポーネント格納変数]に複合コンポーネントを設定しメソッドを公開しても、階層下のコンポ―ネントのメソッドは取得できません。
お送りいただいたファイルを変更してみましたので、ご参考になれば幸いです。
さて、メソッドの引数の設定や条件指定の際、「String」「int」「boolean」といった基本的な型以外は完全なクラス名で指定しなければならず、引数やコンポーネントのクラス名を知る必要があります。
C:\MZPlatform\3.6_64\components\index.htmlから『コンポーネントリファレンス』で確認できるのですが、表示する文書がXML形式となっており、以前はブラウザー簡単に表示できたのものの現在GoogleChromeでは表示できず、MicrosoftEdgeで表示するには設定をしなければなりません。
表示するにはMicrosoftEdgeの「設定」>「既定のブラウザ」>「Internet Explorer モードでサイトの再読み込みを許可」の設定をし、文書を開いた後「Internet Explorerモードで再読み込みする」をクリックします。
こちらの「e-Gov電子申請」サイト(https://shinsei.e-gov.go.jp/contents/help/faq/document.html)の『Q. Internet Explorerのブラウザ以外で、XMLファイル形式の公文書ファイルを開く方法を教えてください。』がご参考になるかと思います。『コンポーネントリファレンス』(index.html)を開いた後、左側のコンポーネント名をクリックすると右側のページにコンポーネントのクラス名や主なメソッドが表示されます。クラス名をクリックするとさらに詳しいメソッドの情報が表示されます。
文書が開けなかったり、必要な情報が見つからないことの方が多い恐れがありますので、どうぞ必要なメソッドがありましたら、再度ご連絡いただければ幸いです。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスターまずは1について、2021年8月31日版のツールキットを前提に説明いたします。
MZ講習資料IoTエッジ編のPDFの中で、P.24-25に入出力テーブルの説明があります。ここでD2ピンがINPUTとなっていることでデジタル入力のモードとなっていますので、D3とD4を手動で同様の状態にしてお試しください。
動作が確認できた後、起動時にその状態に設定したい場合には、P.76の設定ファイルに所定の記載をすることで可能ですので、設定ファイルmzapp.iniもご確認ください。
2と3についてはもう少し詳細をご説明いただかないと回答ができない感じですので、実現したい内容についてご説明いただけますでしょうか。
4はチャタリングかもしれません。そうであれば一般的な電子回路の話なので、こちらでもあまり十分な対応ができません。もし社内に詳しい方がいるようであれば相談した方が良いかもしれません。
-
投稿者投稿