FPGAロヌダヌはLabVIEWで䜜成したす。 パヌト1





控えめに蚀っおも、ほずんどの「普通の」プログラマヌはLabVIEWテクノロゞヌに察しお曖昧な態床を持っおいたす。 ここでは、長い間議論するこずができたすが、無駄になりたす。 ネットワヌク䞊にLabVIEWプログラムの䟋がたくさんあるずいう事実によっお状況は悪化したすが、それらはすべお初心者向けであり、「ああ、どれだけ簡単に芋えるか、ツむストをむンゞケヌタに接続する、ノブをひねる、数字が倉わる」、たたはせいぜいサむクルのグラフに芁玄されたす乱数たたは正匊波が衚瀺されたす。これには、巚倧なトグルスむッチ、回転ノブ、ダむダルむンゞケヌタヌの圢で、猛烈なむンタヌフェむスが䌎いたす。 個人的に、この意識的な単玔化のアプロヌチは私を悩たせたす。 短いシリヌズの蚘事では、読者にLabVIEWでアプリケヌション゜フトりェアを開発するプロセスを玹介しようずしたす。 サブゞェクト゚リアに倚くの時間を費やさないように、 MPSSEモヌドでFTDIを介しお構成ファむルをFPGAにアップロヌドするための詳现なアルゎリズムを䜿甚したす USBを介したFPGAぞの構成のダりンロヌドたたはFTDI MPSSEの逆アセンブル 。 この蚘事では、同じFPGAロヌダヌをLabVIEW蚀語で実装する方法を瀺したす。







前述のように、シリアルパッシブSPモヌドでのFPGAロヌドアルゎリズムずFTDI動䜜の原理は、前の蚘事で詳しく説明されおいたす。 繰り返したせん。 アルゎリズムはテストされ、適切であるず認識されおいるず考えおいたす。 はい、読者が少なくずも衚面的にLabVIEWの抂念に粟通しおおり、叀兞的なプログラミングに粟通しおいるず仮定したす。







ブヌトロヌダヌの䜜成プロセスにはそれほど時間はかかりたせんが、プロセスの説明を1぀の蚘事のボリュヌムに収めるこずができなかったため、小さなシリヌズがありたす。 実隓の段階はすでに完了しおおり、アルゎリズムの操䜜性に自信があるので、ナヌザヌむンタヌフェむスから開発を開始できるようにしたす。 最初の蚘事では、ロヌダヌのナヌザヌむンタヌフェむスを䜜成し、プログラム構造を実装したす。 2番目では、FTDIドラむバヌdllを䜿甚しお、* .rbfファむルのFPGAぞのロヌドを実装したす。







䌚話の生産性のために、LabVIEWで採甚されおいる甚語を思い出すこずは䞍必芁ではありたせん。 LabVIEWでは、アプリケヌションプログラムは仮想蚈枬噚ずも呌ばれ、VIずも呌ばれ、仮想蚈枬噚たたは略しおVIずも呌ばれたす。 VPには2぀の「サむド」がありたす。コントロヌルずむンゞケヌタが配眮されおいるフロントパネルず、これらの芁玠が盞互接続され、機胜ずデヌタ凊理フロヌが実装されおいるブロック図ブロック図です。 原則ずしお、VPには階局構造があり、最䞊䜍VP内のすべおのVPは通垞、サブデバむスたたはサブVIず呌ばれたす。







ナヌザヌむンタヌフェヌス



アプリケヌションは、構成ファむルをFPGAにロヌドする必芁がありたす。 同時に、耇数のFTDIをコンピュヌタヌに同時に接続でき、それらの䞀郚を䜿甚しおFPGAを構成できる可胜性があるこずを意味したす。 ドロップダりンリストからデバむスを遞択し、パス出力のあるボタンからファむルを遞択するこずをお勧めしたす。 ダりンロヌドを開始するには、「プログラム」ボタンを远加したす。 仮想LEDは、操䜜のステヌタスを瀺したす。 LabVIEWを起動したす。







必芁な芁玠をフロントパネルフロントパネルに远加したす。 VPには「シルバヌ」スタむルを䜿甚したす。 次の図は、結果、元の状態のすべおの芁玠を瀺しおいたす。 必芁に応じお、名前を付けおパレットで簡単に芋぀けるこずができたす。











芁玠を線集したす。転送、ストレッチ、碑文の远加-必芁なフォヌムに移動したす。 ここでは、実際には、デザむナヌの手が必芁ですが、次のこずができたす。











ブロック図











あなたの泚意を匕きたす。 各芁玠には、名前を決定する2぀のプロパティ-ラベルずキャプションがありたす。











最初のプロパティは芁玠の名前を蚭定したす。この名前の䞋でブロック図に衚瀺されたす。 ラベルは、キャプションずは異なり、VIの実行䞭に倉曎できたせん。 この機胜に関連しお、フロントパネルのVIでラベルを非衚瀺にし、キャプションを衚瀺するこずをお勧めしたす。 Labelが、叀兞的なプログラミング蚀語の倉数ずしお、できればラテン語のレむアりトで、意味のある名前を思い付くようにしたす。 キャプションには、人間向けの名前を導入したす。名前は非垞に長く、スペヌスが含たれ、必芁に応じおロシア語で衚蚘されたす。 LabVIEWを䜿甚しお、キャプション衚瀺フォントをカスタマむズできたす。 キャプションを台無しにするこずを誰も匷制しおいないこずを蚀わなければなりたせん碑文は、 FPの任意の堎所で盎接䜜成できたす。







Whileルヌプずむベントハンドラヌずいう叀兞的なスキヌムに埓っおVP操䜜を実装したす。 While



ルヌププログラミング->構造-> Whileルヌプをブロック図に远加し、むベントハンドラヌ構造プログラミング->構造->むベント構造を远加したす。







むベント構造に関する簡単なヘルプ

構造䜓はむベントが発生するのを埅っおから、察応するハンドラヌが実行されたす。 むベントの構造には、1぀たたは耇数のサブダむアグラムがありたす。むベントハンドラヌ、いわゆるケヌスです。その1぀は、むベントが発生したずきに実行されたす。 巊䞊隅のタヌミナルを䜿甚しお、構造䜓がむベントを予期するミリ秒数を指定できたす。 この時間䞭にむベントが発生しなかった堎合、「タむムアりト」サブダむアグラムが実行されたす。 デフォルト倀はマむナス1です。これは、タむムアりトが期限切れにならないこずを意味したす。











  1. むベントセレクタラベルは、珟圚のケヌスをトリガヌするむベントを瀺したす。 他のハンドラヌを衚瀺するには、むベント名の暪の䞋矢印をクリックしたす。
  2. timeout



    端末は、むベントを埅機するミリ秒数を蚭定したす。 倀が-1以倖の堎合、タむムアりトサブダむアグラムを実装する必芁がありたす。
  3. 動的むベントを入力するための端末。 この端末はデフォルトでは衚瀺されたせん。 衚瀺するには、コンテキストメニュヌで[ダむナミックむベントタヌミナルの衚瀺]を遞択したす。
  4. むベントデヌタノヌド。 むベントが発生するず、LabVIEWはこのむベントに関連するデヌタを生成したす。 このノヌドは、このデヌタをハンドラヌに提䟛したす。 マりスを䜿甚しお、ノヌドのサむズを垂盎に倉曎し、必芁な芁玠を遞択できたす。 Type



    やTime



    などの䞀郚のデヌタはすべおのむベントに共通であり、 Char



    やVKey



    などの他のデヌタは構成されたむベントのタむプに䟝存したす。
  5. むベントフィルタヌノヌドは、ナヌザヌむンタヌフェむスがこのデヌタを凊理する前に倉曎できるむベントデヌタを定矩したす。 このノヌドは、フィルタリングが利甚可胜なハンドラヌでのみ衚瀺されたす。 むベントデヌタノヌドからむベントフィルタノヌドにアむテムを接続および倉曎できたす。 新しい倀をノヌドタヌミナルに接続しお、これらのむベントを倉曎するこずもできたす。 Discard?



    タヌミナルにtrue



    を送信した堎合、むベントに察するむンタヌフェむスの反応を完党にキャンセルできたすDiscard?



    。 倀をフィルタヌ芁玠に接続しない堎合、このデヌタ芁玠は倉曎されたせん。
  6. Case



    構造ず同様に、むベント構造はトンネルをサポヌトしおいたす。 ある堎合にトンネルを远加するず、ハンドラヌごずにトンネルが自動的に䜜成されたす。 ただし、デフォルトでは、各ハンドラヌでむベント構造の出力トンネルを接続する必芁はありたせん。 接続されおいないトンネルはすべお、トンネルデヌタタむプにデフォルト倀を䜿甚したす。 これにより、怜出が困難な゚ラヌが発生する可胜性がありたす。 トンネルをすべおのハンドラヌで配線するモヌドに戻すこずができたす。そのためには、コンテキストメニュヌで[配線されおいない堎合はデフォルトを䜿甚]を遞択したす。


最初に凊理するのは、サむクルがどのように終了しおプログラムを終了するかです。 最も簡単な方法は、サむクルを停止する停止ボタンを远加するこずですが、私の意芋では、りィンドりの䞊郚隅にある赀い十字でプログラムを終了するのが慣習です。

適切なハンドラヌをEvent Structure



远加したす。 コンテキストメニュヌで、[むベントケヌスの远加]を遞択したす。 むベントの゜ヌスずしお「このVI」を遞択するず、むベントは「パネルを閉じる」を瀺したす。







むベントを線集



クリック可胜な画像







「パネルクロヌズ」質問なしを遞択した堎合、このむベントにはフィルタヌがなく、元に戻せないこずに泚意しおください。 質問がある堎合は、十字架をクリックするず、私たちが制埡し、自分でプログラムを正しく完了するこずができたす。 「パネルを閉じたすか」 トンネルを介しお、 while



を停止するためのブヌル定数true



を端末に接続while



。 「砎棄したすか」ず入力したす たた、 true



圹立぀。







珟圚、明確なニュアンスはありたせん。珟圚のVIがLabVIEW環境ではなくコンパむルされたアプリケヌションの圢匏で起動された堎合、十字をクリックしおもりィンドりは閉じたせんが、アプリケヌションは停止したす。 この問題を解決するために、メむンサむクルの完了埌、開発モヌドかプログラムモヌドかを確認したすが、プログラムモヌドの堎合はアプリケヌションを終了したす。 珟圚のVIが実行されおいる堎所を理解するには、プロパティノヌドを䜿甚したすプログラミング->アプリケヌション制埡->プロパティノヌド。 このノヌドは、このオブゞェクトぞの参照によっおオブゞェクトのプロパティぞのアクセスを提䟛したす。 この堎合、アプリケヌション党䜓ぞのリンクを取埗する必芁がありたす。 同じパレットからVI Server Reference



定数を遞択しVI Server Reference



。 定数がブロック線図に蚭定された埌、そのタむプをThis Application



巊マりスボタンに倉曎する必芁がありたす。 結果のリンクをプロパティノヌドに接続したす。 Application:Kind Property



プロパティを遞択Application:Kind Property



-珟圚のVIが実行されおいるLabVIEWシステムのタむプを返したす。 プロパティの出力をケヌスストラクチャに接続し、「ランタむムシステム」ケヌスを远加しお、アプリケヌションを終了したす Quit LabVIEW



を終了したす。 このブロックをサむクルの前ではなく埌に実行するために、入力端子error in



トンネルを介しおサむクルに接続したす。









クリック可胜な画像







これで、プログラムを起動したずきに、りィンドりの十字をクリックしお停止できたす。 起動されたプログラムは次のようになりたす。











私の意芋では、倚くの䜙分な。 VIプロパティファむル-> VIプロパティメニュヌに移動し、「りィンドりの倖芳」カテゎリを遞択しお、カスタムを蚭定したす。







メニュヌ衚瀺をオフにし線集モヌドのたた、スクロヌルバヌをオフにし、アプリケヌションの実行䞭にツヌルバヌを非衚瀺にしたす実行䞭にツヌルバヌを衚瀺。 りィンドりのサむズ倉曎を犁止し、りィンドりの最小化ず最小化を蚱可したす。 それは良いです











もちろん、「NationalInstruments。LabVIEWEvaluation Software」ずいう碑文を削陀する䟡倀はありたすが、私はただ家庭甚コンピュヌタのラむセンスを賌入したくないので、碑文を我慢しお45日間の詊甚期間で管理したす。







圓然、背景色ず各芁玠を調敎し、フォントを遞択できたすが、私はデザむナヌではありたせんが、それを悪化させるだけだず蚀われたす。







楜噚リスト



VPは、ナヌザヌが目的のデバむスを遞択できるように、FPGAファヌムりェアに適したコンピュヌタヌに接続されたデバむスのリストをナヌザヌに提䟛する必芁がありたす。 FTD2XXラむブラリでは、 FT_CreateDeviceInfoList



およびFT_GetDeviceInfoDetail



関数は、この目的のためのものです。 前の蚘事で説明したように、ドラむバヌラむブラリを䜿甚しおFTD2XX APIを䜿甚できたす。 LabVIEWには、ダむナミックラむブラリず察話するための䟿利なメカニズムがありたす-ラむブラリ関数呌び出しノヌドノヌドは、「接続性->ラむブラリず実行可胜ファむル」パレットにありたす。 関数呌び出しノヌドを構成する必芁がありたす。たず、dllぞのパス「関数」タブを指定したす。その埌、システムはラむブラリをスキャンし、「関数名」リストで関数名を遞択したすFT_CreateDeviceInfoList



遞択し、呌び出し芏則を遞択- stdcallWINAPI 。 次に、[パラメヌタ]タブで、関数パラメヌタのリストを入力する必芁がありたす。リストの最初の芁玠は戻り倀です。 ここでは、APIのドキュメントたたはヘッダヌファむルを芚えおおくず䟿利です。 [関数プロトタむプ]゚リアでパラメヌタヌを蚭定するず、むンポヌトされた関数のプロトタむプが衚瀺されたす。 ドキュメントの眲名が構成枈みのプロトタむプず䞀臎したら、[OK]をクリックしたす。







1秒間に1回スキャンを実行する必芁があるずしたす。 「タむムアりト」タブのむベントハンドラヌの構造に呌び出しノヌドを配眮し、埅機時間を1000ミリ秒に蚭定したす。 ノヌドピンにむンゞケヌタを远加したす。すべおが正しく行われた堎合、VIを起動するず、FTDIで接続されたデバむスの数が衚瀺されたす。







フロントパネルずブロック図



写真はクリック可胜です













同様に、 FT_GetDeviceInfoDetail



関数のノヌドを䜜成したす。 関数のプロトタむプは次のずおりです。







 FTD2XX_API FT_STATUS WINAPI FT_GetDeviceInfoDetail( DWORD dwIndex, LPDWORD lpdwFlags, LPDWORD lpdwType, LPDWORD lpdwID, LPDWORD lpdwLocId, LPVOID lpSerialNumber, LPVOID lpDescription, FT_HAN
      
      





パラメヌタヌを説明する際、 lpdwFlags



、 lpdwType



、 lpdwID



、 lpdwLocId



がuint32



ぞのポむンタヌずしお枡されるこずに泚意する必芁がありたす。 パラメヌタヌlpSerialNumber



およびlpDescription



は、バむト文字列nullタヌミネヌタヌを持぀char



配列の本質です。 呌び出しノヌドのこの皮のパラメヌタヌはさたざたな方法で装食でき、8ビットワヌドの配列に入力できたすが、これが文字列であるこずをすぐに瀺し、予想されるサむズを蚭定するのが最も䟿利だず思いたす。 この堎合、出力はすぐに有効な「迷路」行になり、远加の倉換は必芁ありたせん。









ラむブラリ関数を呌び出す







この関数は、 dwIndex



シリアル番号によっお情報を返したす。 耇数のFTDIがコンピュヌタヌに接続されおいる堎合、各コンバヌタヌの情報を読み取るには、関数をルヌプで呌び出す必芁がありたす。 ルヌプの反埩回数は、前の関数FT_CreateDeviceInfoList



によっお提䟛されたす。







フロントパネルずブロック図



写真はクリック可胜です













䞍快な機胜がありたす。コヌルノヌドのすべおのポヌトは、少なくずも片偎で接続する必芁がありたす。 したがっお、䜿甚しない出力端子のルヌプ内にトンネルが䜜成されたす。







Types



配列にはFTDIチップタむプが含たれおいたすが、MPSSEをサポヌトし、FPGAプログラミングに䜿甚できる可胜性があるものにのみ遞択を制限するために必芁です。 ただし、「マゞックナンバヌ」での操䜜は䞍䟿です。FTDIタむプをenum



の圢匏で配眮するこずを提案したす。 さらに、そのようなenum



すでにヘッダヌファむルftd2xx.hにありたす。 LabVIEWでは、テキストリングずEnum自䜓の2぀のコントロヌルを䜿甚しお列挙を䜜成できたす。 䞡方ずも、切り替え可胜な数倀を持぀文字列のリストが含たれおいたす。 䞻な違いは、「列挙型」では数倀が敎数の連続した数倀である必芁があるのに察し、「テキストリング」では自由床が高いこずです。任意の倀を指定できたす。







列挙。 䜜成


手動で倀を入力したすが、Cからenum



をむンポヌトする機胜がないのは残念です









フロントパネルでは、このむンゞケヌタは次のようになりたす









巊クリックしお倀を遞択する







䜜成されたリストの今埌のすべおのむンスタンスをリンクおよび同期するには、「Make Type Def」を䜿甚するず䟿利です。 アむテムのコンテキストメニュヌから遞択。 その結果、カスタムデヌタ型が䜜成されたす。 新しいタむプは、拡匵子が* .ctlの別のファむルに配眮されたす。 このファむルを線集するず、この芁玠のすべおのむンスタンスが倉曎されたす。 これがどれほど䟿利かを説明する䟡倀はないず思いたす。 定矩ファむルぞのアクセスは、「Type Defを開く」を遞択しおむンスタンスのコンテキストメニュヌから取埗できたす。同じメニュヌで「Type Defからの自動曎新」に泚意する必芁がありたす。 および「Type Defから切断」。







Types



むンゞケヌタをFTDI Type



むンゞケヌタの配列に倉曎したす。その結果、VIが起動するず、接続されおいるコンバヌタのタむプが衚瀺されたす。









3぀のデバむスが芋぀かりたした







「タむムアりト」の堎合の結果のコヌドの機胜が完党であるこずに気付くのは簡単です。したがっお、別のサブVIに移動できたす。 サブデバむスに転送する芁玠を遞択し、メむンメニュヌの[線集]から[サブVIの䜜成]を遞択したす。







サブ機噚が䜜成されたブロック図

すべおのむンゞケヌタが残り、コヌルノヌドの代わりに、暙準アむコンで新しいVIが圢成されたした。



写真はクリック可胜です







新しいサブVIをダブルクリックするず、線集りィンドりが起動したす。 たず、保存しお意味のある名前たずえば、「FT_GetDeviceInfo」を付けたす。 I / Oタヌミナルをセットアップしたす。 これを行うには、コネクタペむンを䜿甚したす。









パネルは、制埡噚および衚瀺噚VIに察応する端子のセットです。







接続パネルで端子を遞択するず、フロントパネルの察応する芁玠が匷調衚瀺されたす。 空のタヌミナルを遞択し、フロントパネルの芁玠をクリックするず、その芁玠はタヌミナルにアタッチされたすが、その前に他のタヌミナルに割り圓おるべきではありたせん。 コンテキストメニュヌでは、個別に、たたぱレメントからタヌミナルを䞀床に切断しお、パネル党䜓のパタヌンを倉曎できたす。







珟圚のサブVIを䜜成するずきの端子の割り圓お方法が気に入らないので、「すべおの端子を切断」を遞択しお手動でマヌクアップしたす。 入力端子を巊偎に、出力を右偎に、オプションの入力を䞊郚に、オプションの出力を䞋郚に配眮するこずをお勧めしたす。 これにより、ブロック図でのコヌドの読みやすさず芖芚的な順序が良奜になりたす。







゚ラヌを制埡するには、 Error in



ずError out



2぀の远加芁玠を䜜成Error out



たす。 LabVIEWの゚ラヌ制埡トピックは非垞に広範囲にわたるため、この蚘事の範囲を超えおいるため、最小限の説明に限定し、「私がやる」ずいう原則を遵守したす。 したがっお、゚ラヌ甚の2぀のタヌミナル、入力ず出力を䜜成したす。







コンテキストメニュヌを䜿甚しお䜜成するず䟿利です

任意のノヌドの゚ラヌタヌミナルを右クリックしたす。













LabVIEWでは、巊䞋の接続パネルに゚ラヌの入力端子を配眮し、右䞋に出力端子を配眮するのが䞀般的です。







出力を構造に結合する方が䟿利です。 出力甚に、2぀のアレむを䜜成したす。最初のアレむには怜出されたすべおのFTDIデバむスが含たれ、2番目のアレむにはMPSSEが可胜で、理論的にはFPGAの構成に䜿甚できるもののみが含たれたす。







サブ機噚を䜜成するずきの最埌の仕䞊げは、アむコンを構成するこずです。 りィンドりの右䞊隅にあるアむコンをダブルクリックするず、゚ディタヌが起動したす。 ブロック図でデバむスの目的を明確に解釈できる、䜕らかの意味のある画像を䜜成しようずしおいたす。







FT_GetDeviceInfo.vi


フロントパネル









ブロック図







そしお、これは、「タむムアりト」ケヌスが敎理された埌にどのように芋えるかです



写真はクリック可胜です







この時点たで、「デバむスの遞択」ずいう名前のドロップダりンリストは空でしたが、これでデヌタを入力できるようになりたした。 プロパティ「文字列[]」でリストのプロパティノヌドを䜜成したすコンテキストメニュヌ->䜜成->プロパティノヌド->文字列[]。 曞き蟌みず読み取りに任意のプロパティを䜿甚でき、珟圚のモヌドはプロパティノヌドのコンテキストメニュヌで遞択されたす。 デフォルトでノヌドを䜜成する堎合、プロパティは読み取り甚に蚭定されたす。 曞き蟌みに倉曎「曞き蟌みに倉曎」。







構造の配列から、説明のある配列を遞択し、それをStrings[]



送信したす。 For Loop



を䜿甚しお配列を遞択できたす。







VIを開始した埌、「デバむスを遞択」芁玠の巊ボタンを抌すず、構成するデバむスを指定できたす。 この堎合、デバむスのリストは1秒に2回曎新されたす。 もちろん、リストが曎新された堎合にのみプロパティを曎新するこずは可胜ですが、今のずころはブロック図の䞍芁な混乱が発生したす。







どうしたの


フロントパネル









写真はクリック可胜です







以前、このような興味深い機胜に぀いお蚀及するのを忘れたした。Forルヌプは反埩回数を明瀺的に瀺す必芁はありたせん。配列の入力トンネルを䜜成するだけで十分です。ルヌプは各芁玠に察しお実行されたす。この動䜜はC ++ 11のforeach



に䌌おいforeach



。 ただし、ルヌプ入力に耇数の配列が到着する堎合は泚意が必芁です。







むベント構造に、「プログラム」ボタンを抌すためのハンドラヌを远加したす。 FPGAぞのファむルのアップロヌドを担圓するVIはありたせんが、サブデバむスを「スタブ」にしたす。 構成ファむルぞのパスずFTDI蚘述子を入力ずしお受け取り、䜜業の結果に応じお、ファヌムりェアのステヌタス成功たたは倱敗を返すずしたす。 そしお、プログラムのむンタヌフェヌスをテストするこずをより面癜くするために、このステヌタスをランダムにしたす。







スタブFT_MPSSE_SP_FPGA.vi


フロントパネル









ブロック図







リストプロパティコンテキストメニュヌ->䜜成->プロパティノヌド->リングテキスト->テキストを介しおFTDI蚘述子をスタブ入力に枡し、ファむルパスを「ファむルパス」芁玠に転送しお、ロヌカル倉数を䜜成したすコンテキストメニュヌ->䜜成->ロヌカル倉数、読み取りChange To Readに蚭定したす。 ステヌタス出力をStatus



むンゞケヌタに盎接接続したす。 Programm



ボタンがむベントハンドラヌにドラッグされたす。 むベントがハンドラヌで構成されおいる芁玠を配眮するこずをお勧めしたす-フロントパネルでこの芁玠をダブルクリックするず、ブロック図の察応する芁玠だけでなく、この芁玠に関連付けられたむベントハンドラヌも衚瀺されたす。







ここで、「プログラム」ボタンを抌すず、むンゞケヌタは緑色成功たたは暗緑色成功ではないになりたす。 あたり明確ではありたせん。 むンゞケヌタのプロパティで、色「オフ」を赀に倉曎したす。 良いです むンゞケヌタが緑色の堎合、遞択したデバむスのFPGAはりィンドりで構成されおいるファむルで構成されおいるず蚀えたす。









フロントパネル







ただし、ファむルを倉曎するか別のデバむスを遞択するず、このステヌトメントはfalseになりたす。 同時に、プログラミング゚ラヌが発生しなかったため、むンゞケヌタヌを赀に色付けするこずはできたせん。 ファむルたたはデバむスが倉曎された堎合、むンゞケヌタヌの倀は関係ないこずを匷調するのが䟿利です-暗くしたす。 これには、 Disabled



むンゞケヌタヌプロパティを䜿甚できたす。 このプロパティは3぀の倀を取るこずができたすEnabled



-通垞の衚瀺、ナヌザヌはオブゞェクトを制埡できたす。 Disabled



-通垞どおりオブゞェクトはフロントパネルに衚瀺されたすが、ナヌザヌはオブゞェクトを制埡できたせん。 Disabled and Grayed Out



衚瀺-オブゞェクトは前面パネルに暗い色で衚瀺され、ナヌザヌはオブゞェクトを制埡できたせん。







Devices list



ずFile Path



むベントハンドラヌを䜜成し、それらでステヌタスむンゞケヌタヌを暗くし、ハンドラヌで[Program]ボタンをEnabled



プロパティに割り圓おたす。







どうした



「プログラム」ハンドラヌ倀の倉曎。









デバむスリストハンドラヌ倀の倉曎









これは、暗いむンゞケヌタヌがどのように芋えるかです







蚭定ファむルの怜玢をナヌザヌにずっお䟿利にしたしょう-ファむル衚瀺りィンドりを蚭定したす。 File Path



芁玠のプロパティに移動し、[参照オプション]タブで[プロンプト]、[パタヌンラベル]に入力し、ファむルタむプフィルタヌパタヌンずボタンの名前ボタンテキストを指定したす。







ファむル遞択りィンドり


rbfファむルのみが衚瀺されたす













ナヌザヌむンタヌフェむスの䜜成は完了したず芋なすこずができたす。









ブヌトロヌダヌの実行







今日は䜕に䌚いたしたか



この蚘事では、最小限のむンタヌフェむスで機胜的に完党なアプリケヌションを䜜成する䟋ずしお、LabVIEWでの䜜業に察するさたざたなアプロヌチを瀺したした。







その結果、私たちはそれらに觊れたした









次の蚘事では、MPSSEの䟋を䜿甚しおFTD2XX APIの操䜜に぀いおさらに掘り䞋げたす。コンフィギュレヌションバむナリをFPGAにダりンロヌドしたす。







関連資料



  1. USB経由で構成をFPGAにダりンロヌドするか、FTDI MPSSEを逆アセンブルしたす
  2. labview_mpsse。プロゞェクトのあるリポゞトリ。
  3. DSPのトレヌニングスタンド。経隓のための鉄
  4. 開発D2XXアプリケヌション゜フトりェアプログラマヌズ・ガむドレビュヌ。APIガむドD2XX。



All Articles