(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-29
(54)【発明の名称】ビジョンソフトウェアのプロセススケジューリング方法及び装置
(51)【国際特許分類】
G06F 9/44 20180101AFI20221121BHJP
【FI】
G06F9/44
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022520086
(86)(22)【出願日】2020-09-29
(85)【翻訳文提出日】2022-04-28
(86)【国際出願番号】 CN2020118736
(87)【国際公開番号】W WO2021063342
(87)【国際公開日】2021-04-08
(31)【優先権主張番号】201910945499.6
(32)【優先日】2019-09-30
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】519059292
【氏名又は名称】杭州海康机器人股▲ふん▼有限公司
【氏名又は名称原語表記】Hangzhou Hikrobot Co., Ltd.
【住所又は居所原語表記】Room 304, Unit B, Building 2, 399 Dangfeng Road, Binjiang District, Hangzhou, Zhejiang 310051, China
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】宋 震龍
(72)【発明者】
【氏名】胡 景翔
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AE20
5B376AE54
5B376FA10
(57)【要約】
本願実施例は、マシンビジョンの技術分野に関し、ビジョンソフトウェアのプロセススケジューリング方法及び装置を提供する。当該方法は、プロセス実行命令を受信するステップ(101)と、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るステップ(102)と、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定するステップ(103)と、実行対象プロセスを実行するステップ(104)と、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定し(105)、実行対象プロセスを実行するステップに戻るステップと、を含む。本願実施例に係る技術案を用いて、複数のプロセスの共同スケジューリングおよび制御を実現する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセス実行命令を受信するステップと、
前記プロセス実行命令に基づいて、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るステップと、
前記実行順序に基づいて、前記グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定するステップと、
前記実行対象プロセスを実行するステップと、
前記実行順序に基づいて、前記グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定し、前記実行対象プロセスを実行するステップに戻るステップと、を含む、
ビジョンソフトウェアのプロセススケジューリング方法。
【請求項2】
前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行条件を読み取るステップをさらに含み、
前記実行対象プロセスを実行するステップは、
現在の動作環境が前記実行条件を満たす場合、前記実行対象プロセスを実行することを含む、
請求項1に記載の方法。
【請求項3】
前記グローバルスクリプトファイルに予め格納された各プロセスの実行結果とグローバル変数値との対応関係を読み取るステップと、
前記実行対象プロセスを実行した後、前記実行対象プロセスの実行結果を取得するステップと、
各プロセスの実行結果とグローバル変数値との対応関係に基づいて、前記実行対象プロセスの実行結果に対応している目標グローバル変数値を決定するステップと、をさらに含み、
前記グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定した後、前記実行対象プロセスを実行するステップは、
前記実行対象プロセスの前記目標グローバル変数値に対応しているプロセスブランチを実行することを含む、
請求項1に記載の方法。
【請求項4】
前記プロセス実行命令が循環プロセス実行命令である場合、前記グローバルスクリプトファイルに関連付けられたプロセスの全てが実行された後、前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るステップに戻るステップと、
プロセス停止命令を受信すると、前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るステップに戻ることを停止するステップと、
前記プロセス実行命令が単一のプロセス実行命令である場合、前記グローバルスクリプトファイルに関連付けられたプロセスの全てが実行された後、今回のプロセススケジューリングは終了するステップと、をさらに含む、
請求項1に記載の方法。
【請求項5】
外部装置から送信された目標プロセスに対する外部実行命令を受信するステップと、
前記目標プロセスを実行するステップと、をさらに含む、
請求項1に記載の方法。
【請求項6】
前記外部実行命令には構成パラメータとパラメータ値が含まれており、
前記目標プロセスを実行するステップは、
前記目標プロセスにおける前記構成パラメータの値を前記パラメータ値に設定し、設定された目標プロセスを実行することを含む、
請求項5に記載の方法。
【請求項7】
前記グローバルスクリプトファイルは、実行処理インターフェースと、実行結果コールバックインターフェースと、通信トリガーコールバックインターフェースと、を備え、前記実行処理インターフェースには、前記プロセスとプロセスとの間の実行順序及び実行条件が格納されており、前記実行結果コールバックインターフェースには、各プロセスの実行結果とグローバル変数値との対応関係が格納されており、
前記実行処理インターフェースはプロセス実行命令に応答し、前記グローバルスクリプトファイルに関連付けられたプロセスを実行するために用いられ、前記実行結果コールバックインターフェースは実行結果をコールバックするために用いられ、前記通信トリガーコールバックインターフェースは外部装置から送信された外部実行命令を受信するために用いられる、
請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記グローバルスクリプトファイルは、編集可能なスクリプトファイルであり、前記ビジュアルソフトウェアはグローバルスクリプトファイルの編集ボックスを提供する、
請求項1から6のいずれか1項に記載の方法。
【請求項9】
プロセス実行命令を受信する前に、
前記ビジュアルソフトウェアに、前記グローバルスクリプティングファイルと前記グローバルスクリプティングファイルに関連付けられたプロセスとを含むプロジェクトファイルをロードするステップと、
前記プロジェクトファイルを解析して前記グローバルスクリプトファイルと前記グローバルスクリプトファイルに関連付けられたプロセスを取得するステップと、を含む、
請求項1から6のいずれか1項に記載の方法。
【請求項10】
プロセス実行命令を受信するために用いられる、第1受信手段と、
前記プロセス実行命令に基づいて、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るために用いられる、第1読取手段と、
前記実行順序に基づいて、前記グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定するために用いられる、第1決定手段と、
前記実行対象プロセスを実行するために用いられる、第1実行手段と、を備え、
前記第1決定手段は、さらに、前記実行順序に基づいて、前記グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定するために用いられる、ビジョンソフトウェアのプロセススケジューリング装置。
【請求項11】
プロセッサーと機器読取可能な記憶媒体とを備える電子デバイスであって、前記機器読取可能な記憶媒体には、前記プロセッサーによって実行可能な機器実行可能命令が記憶されており、前記機器実行可能命令は、前記プロセッサーに請求項1から9のいずれか1項に記載の方法を実現するように実行させる、
電子デバイス。
【請求項12】
プロセッサーによって実行可能な機器実行可能命令が記憶されている機器読取可能な記憶媒体であって、前記機器実行可能命令は、前記プロセッサーに請求項1から9のいずれか1項に記載の方法を実現するように実行させる、
機器読取可能な記憶媒体。
【請求項13】
プロセッサーに請求項1から9のいずれか1項に記載の方法を実現するように実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は、2019年09月30日に中国国家知的財産権局へ提出された、発明名称が「ビジョンソフトウェアのプロセススケジューリング方法及び装置」である中国特許出願第201910945499.6号の優先権を主張しており、当該出願の全ての内容は参照により本明細書に援用される。
【0002】
本願は、マシンビジョンの技術分野に関し、特に、ビジョンソフトウェアのプロセススケジューリング方法及び装置に関する。
【背景技術】
【0003】
マシンビジョン技術は、人工知能の一分野である。簡単に言えば、マシンビジョン技術は、人間の目の代わりに、機器が測定や判断などの作業を行う技術である。
【0004】
マシンビジョンの技術分野において、プロセスとは、その全部または一部が自動的に実行できるビジネスプロセスである。ビジョンソフトウェアが搭載されたデバイスは、複数のプロセスの編集と実行を行うことができる。例えば、ビジョンソフトウェアが搭載されたデバイスは、プロセス1におけるモジュール1の露出パラメータを設定し、プロセス1におけるモジュール1の露出パラメータに基づいて画像を取得することができる。同時に、ビジョンソフトウェアが搭載されたデバイスは、プロセス2におけるモジュール2の画像認識パラメータを設定し、プロセス2におけるモジュール2の画像認識パラメータに基づいて取得された画像を処理することができる。
【0005】
上記のビジョンソフトウェアが搭載されたデバイスは、複数のプロセスの編集と実行を行うことができるが、これらの複数のプロセスが互いに独立しており、複数のプロセスの共同スケジューリング及び制御を実現することができない。
【発明の概要】
【0006】
本願実施例は、複数のプロセスの共同スケジューリング及び制御を実現するために、ビジョンソフトウェアのプロセススケジューリング方法及び装置を提供することを目的とする。具体的な技術案は、以下の通りである。
【0007】
第1態様として、本願実施例は、ビジョンソフトウェアのプロセススケジューリング方法を提供する。前記方法は、
プロセス実行命令を受信するステップと、
前記プロセス実行命令に基づいて、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るステップと、
前記実行順序に基づいて、前記グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定するステップと、
前記実行対象プロセスを実行するステップと、
前記実行順序に基づいて、前記グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定し、前記実行対象プロセスを実行するステップに戻るステップと、を含む。
【0008】
好ましくは、前記方法は、
前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行条件を読み取るステップと、をさらに含み、
前記実行対象プロセスを実行するステップは、
現在の動作環境が前記実行条件を満たす場合、前記実行対象プロセスを実行することを含む。
【0009】
好ましくは、前記方法は、
前記グローバルスクリプトファイルに予め格納された各プロセスの実行結果とグローバル変数値との対応関係を読み取るステップと、
前記実行対象プロセスを実行した後、前記実行対象プロセスの実行結果を取得するステップと、
各プロセスの実行結果とグローバル変数値との対応関係に基づいて、前記実行対象プロセスの実行結果に対応している目標グローバル変数値を決定するステップと、をさらに含み、
前記グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定した後、前記実行対象プロセスを実行するステップは、
前記実行対象プロセスの前記目標グローバル変数値に対応しているプロセスブランチを実行することを含む。
【0010】
好ましくは、前記方法は、
前記プロセス実行命令が循環プロセス実行命令である場合、前記グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るステップに戻るステップと、プロセス停止命令を受信すると、前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るステップに戻ることを停止するステップと、
前記プロセス実行命令が単一のプロセス実行命令である場合、前記グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、今回のプロセススケジューリングは終了するステップと、をさらに含む。
【0011】
好ましくは、前記方法は、
外部装置から送信された目標プロセスに対する外部実行命令を受信するステップと、
前記目標プロセスを実行するステップと、をさらに含む。
【0012】
好ましくは、前記外部実行命令には構成パラメータとパラメータ値が含まれており、
前記目標プロセスを実行するステップは、
前記目標プロセスにおける前記構成パラメータの値を前記パラメータ値に設定し、設定された目標プロセスを実行することを含む。
【0013】
好ましくは、前記グローバルスクリプトファイルは、実行処理インターフェースと、実行結果コールバックインターフェースと、通信トリガーコールバックインターフェースと、を備え、前記実行処理インターフェースには、前記プロセスとプロセスとの間の実行順序及び実行条件が格納されており、前記実行結果コールバックインターフェースには、各プロセスの実行結果とグローバル変数値との対応関係が格納されており、
前記実行処理インターフェースはプロセス実行命令に応答し、前記グローバルスクリプトファイルに関連付けられたプロセスを実行するために用いられ、前記実行結果コールバックインターフェースは実行結果をコールバックするために用いられ、前記通信トリガーコールバックインターフェースは外部装置から送信された外部実行命令を受信するために用いられる。
【0014】
好ましくは、前記グローバルスクリプトファイルは、編集可能なスクリプトファイルであり、前記ビジュアルソフトウェアはグローバルスクリプトファイルの編集ボックスを提供する。
【0015】
好ましくは、プロセス実行命令を受信する前に、前記方法は、
前記ビジュアルソフトウェアに、前記グローバルスクリプティングファイルと前記グローバルスクリプティングファイルに関連付けられたプロセスとを含むプロジェクトファイルをロードするステップと、
前記プロジェクトファイルを解析して前記グローバルスクリプトファイルと前記グローバルスクリプトファイルに関連付けられたプロセスを取得するステップと、を含む。
【0016】
第2態様として、本願実施例は、ビジョンソフトウェアのプロセススケジューリング装置を提供する。前記装置は、
プロセス実行命令を受信するために用いられる、第1受信手段と、
前記プロセス実行命令に基づいて、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るために用いられる、第1読取手段と、
前記実行順序に基づいて、前記グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定するために用いられる、第1決定手段と、
前記実行対象プロセスを実行するために用いられる、第1実行手段と、を備え、
前記第1決定手段は、さらに、前記実行順序に基づいて、前記グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定するために用いられる。
【0017】
好ましくは、前記第1読取手段は、さらに、前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行条件を読み取るために用いられ、
前記第1実行手段は、具体的に、現在の動作環境が前記実行条件を満たす場合、前記実行対象プロセスを実行するために用いられる。
【0018】
好ましくは、前記装置は、
前記グローバルスクリプトファイルに予め格納された各プロセスの実行結果とグローバル変数値との対応関係を読み取るために用いられる、第2読取手段と、
前記実行対象プロセスを実行した後、前記実行対象プロセスの実行結果を取得するために用いられる取得手段と、
各プロセスの実行結果とグローバル変数値との対応関係に基づいて、前記実行対象プロセスの実行結果に対応している目標グローバル変数値を決定するために用いられる、第2決定手段と、をさらに備え、
前記第1実行手段は、具体的に、前記グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定した後、前記実行対象プロセスの前記目標グローバル変数値に対応しているプロセスブランチを実行するために用いられる。
【0019】
好ましくは、前記第1読取手段は、さらに、
前記プロセス実行命令が循環プロセス実行命令である場合、前記グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取り、プロセス停止命令を受信すると、前記グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取ることを停止し、
前記プロセス実行命令が単一のプロセス実行命令である場合、前記グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、今回のプロセススケジューリングは終了するために用いられる。
【0020】
好ましくは、前記装置は、さらに、
外部装置から送信された目標プロセスに対する外部実行命令を受信するために用いられる、第2受信手段と、
前記目標プロセスを実行するために用いられる、第2実行手段と、を備える。
【0021】
好ましくは、前記外部実行命令には構成パラメータとパラメータ値が含まれており、
前記第2実行手段は、具体的に、前記目標プロセスにおける前記構成パラメータの値を前記パラメータ値に設定し、設定された目標プロセスを実行するために用いられる。
【0022】
好ましくは、前記グローバルスクリプトファイルは、実行処理インターフェースと、実行結果コールバックインターフェースと、通信トリガーコールバックインターフェースと、を備え、前記実行処理インターフェースには、前記プロセスとプロセスとの間の実行順序及び実行条件が格納されており、前記実行結果コールバックインターフェースには、各プロセスの実行結果とグローバル変数値との対応関係が格納されており、
前記実行処理インターフェースはプロセス実行命令に応答し、前記グローバルスクリプトファイルに関連付けられたプロセスを実行するために用いられ、前記実行結果コールバックインターフェースは実行結果をコールバックするために用いられ、前記通信トリガーコールバックインターフェースは外部装置から送信された外部実行命令を受信するために用いられる。
【0023】
好ましくは、前記グローバルスクリプトファイルは、編集可能なスクリプトファイルであり、前記ビジュアルソフトウェアはグローバルスクリプトファイルの編集ボックスを提供する。
【0024】
好ましくは、前記装置は、
プロセス実行命令を受信する前に、前記ビジュアルソフトウェアに、前記グローバルスクリプティングファイルと前記グローバルスクリプティングファイルに関連付けられたプロセスとを含むプロジェクトファイルをローディングするために用いられる、ローディング手段と、
前記プロジェクトファイルを解析して前記グローバルスクリプトファイルと前記グローバルスクリプトファイルに関連付けられたプロセスを取得するために用いられる、解析手段と、をさらに備える。
【0025】
第3態様として、本願実施例は、電子デバイスを提供する。前記電子デバイスは、プロセッサーと、機器読取可能な記憶媒体と、を備え、前記機器読取可能な記憶媒体には、前記プロセッサーによって実行可能な機器実行可能命令が記憶されており、前記機器実行可能命令は、前記プロセッサーに前記ビジョンソフトウェアのプロセススケジューリング方法のいずれかのステップを実現するように実行させる。
【0026】
第4態様として、本願実施例は、機器読取可能な記憶媒体を提供する。前記機器読取可能な記憶媒体は、プロセッサーと、機器読取可能な記憶媒体と、を備え、前記機器読取可能な記憶媒体には、前記プロセッサーによって実行可能な機器実行可能命令が記憶されており、前記機器実行可能命令は、前記プロセッサーに前記ビジョンソフトウェアのプロセススケジューリング方法のいずれかのステップを実現するように実行させる。
【0027】
第5態様として、本願実施例は、コンピュータプログラムを提供する。前記コンピュータプログラムは、プロセッサーに前記ビジョンソフトウェアのプロセススケジューリング方法のいずれかのステップを実現するように実行させる。
【0028】
本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法及び装置において、グローバルスクリプティングファイルがプロセスに関連付けている。グローバルスクリプトファイルには、プロセスとプロセスとの間の実行順序が予め格納されている。実行順序に基づいて、グローバルスクリプトファイルに関連付けられた各プロセスを順に実行し、複数のプロセスの共同スケジューリング及び制御を実現した。
【0029】
もちろん、本願のいずれかの製品または方法を実施するのは、必ずしも上記の利点のすべてを同時に実現することを必要としない。
【図面の簡単な説明】
【0030】
以下、本願実施例の技術的手段または従来技術の技術的手段をより明瞭に説明するために、実施例または従来技術で必要な図面を簡単に説明する。なお、下記に記載の図面は本願の一部の実施例であり、当業者であれば、進歩性を有する努力をせずに、これらの図面に基づいて他の図面を得ることが明らかである。
【0031】
【
図1】
図1は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法の1つの模式図である。
【
図2】
図2は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法の別の模式図である。
【
図3】
図3は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法のさらに別の模式図である。
【
図4】
図4は、本願実施例により提供されるグローバルスクリプトファイルの編集ボックスの1つの模式図である。
【
図5】
図5は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法のさらに別の模式図である。
【
図6】
図6は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング装置の第1種の模式図である。
【
図7】
図7は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング装置の第2種の模式図である。
【
図8】
図8は、本願実施例により提供される電子デバイスの1つの模式図である。
【発明を実施するための形態】
【0032】
以下、本願実施例における技術案については、本願実施例における図面を参照して以下に明確かつ完全に説明する。説明された実施例は、すべての実施例ではなく、本願実施例の一部にすぎないことが明らかである。当業者は、本願実施例に基づいて、進歩性を有する努力をせずに得られる他のすべての実施例は、本願の保護範囲に含まれる。
【0033】
マシンビジョン技術の分野では、ビジョンソフトウェアが搭載されたデバイスにより、複数のプロセスの編集と実行が行われる。例えば、ビジョンソフトウェアが搭載されたデバイスは、プロセス1におけるモジュール1の露出パラメータを編集し、プロセス1におけるモジュール1の露出パラメータに基づいて画像を取得することができる。同時に、ビジョンソフトウェアが搭載されたデバイスは、プロセス2におけるモジュール2の画像認識パラメータを編集し、プロセス2におけるモジュール2の画像認識パラメータに基づいて画像を処理することができる。上記ビジョンソフトウェアが搭載されたデバイスは、ロボット、監視カメラなどのデバイスであってよい。
【0034】
上記ビジョンソフトウェアが搭載されたデバイスは、複数のプロセスの編集と実行を行うことができるが、これらの複数のプロセスが互いに独立している。例えば、ビジョンソフトウェアが搭載されたデバイスには、プロセス1とプロセス2が含まれている。このデバイスは、単独で、プロセス1のみまたはプロセス2のみを実行し、それぞれプロセス1の実行結果とプロセス2の実行結果を取得することしかできない。この場合、複数のプロセスの共同スケジューリング及び制御を実現することができない。
【0035】
上記の課題を解決するために、本願実施例は、ビジョンソフトウェアのプロセススケジューリング方法を提供する。当該方法は、例えば、ロボット、監視カメラなど、ビジョンソフトウェアが搭載されたデバイスに適用することができる。当該プロセススケジューリング方法において、プロセスとプロセスとの間の実行順序を予め記憶したグローバルスクリプトファイルが配置されている。実行順序に基づいて、グローバルスクリプトファイルに関連付けられた各プロセスを順に実行し、複数のプロセスの共同スケジューリング及び制御を実現した。
【0036】
ここで、グローバルスクリプトファイルにプロセスとプロセスとの間の実行順序を予め記憶した場合、当該プロセスはグローバルスクリプトファイルに関連付けられたプロセスである。
【0037】
以下、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法について、具体的な実施例を参照して詳細に説明する。
【0038】
図1を参照しながら説明する。
図1は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法の1つの模式図である。簡単に理解するために、以下、電子デバイスを実行の主体として説明するが、これに限定するものではない。このプロセススケジューリング方法は、下記のステップを含む。
【0039】
ステップ101、プロセス実行命令を受信する。
【0040】
ビジョンソフトウェアのプロセスに対してスケジューリング及び制御を行う際に、ユーザは、電子デバイスにプロセス実行命令を入力する。電子デバイスは、ユーザから入力されたプロセス実行命令を受信する。
【0041】
一実施例では、グローバルスクリプトファイルは、実行制御ボタンを提供し、ユーザが実行制御ボタンをクリックすると、実行制御ボタンのトリガーイベントがトリガーされる。電子デバイスは、実行制御ボタンのトリガーイベントに応答してプロセス実行命令を生成する。
【0042】
ステップ102、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取る。
【0043】
プロセス実行命令を受信した後、プロセス実行命令に基づいて、電子デバイスは、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取る。
【0044】
電子デバイスには、グローバルスクリプトファイルが配置されている。このグローバルスクリプトファイルには、プロセスとプロセスとの間の実行順序を予め格納されている。ここで、実行順序は、グローバルスクリプトファイルに関連付けられたプロセス間の実行順序である。上記の実行順序は、実際のニーズに応じて設定可能である。
【0045】
例えば、グローバルスクリプトファイルに関連付けられたプロセスは、プロセス1と、プロセス2と、プロセス3とを含む。グローバルスクリプトファイルに予め格納された実行順序は、プロセス1-プロセス2-プロセス3である。
【0046】
ステップ103、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定する。
【0047】
ステップ102の例で説明する。グローバルスクリプトファイルに予め格納された実行順序がプロセス1-プロセス2-プロセス3であり、電子デバイスは、グローバルスクリプトファイルに関連付けられたプロセス1が実行対象プロセスであると決定する。
【0048】
ステップ104、実行対象プロセスを実行する。
【0049】
ステップ105、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定し、ステップ104に戻って実行する。
【0050】
ステップ103の例で説明する。電子デバイスは、プロセス1が実行対象プロセスであると決定された場合、プロセス1を実行する。その後、電子デバイスは、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから、プロセス1を実行した後に実行すべき次のプロセス、即ち次の実行対象プロセスを決定する。上記のように、電子デバイスは、次の実行対象プロセスがプロセス2であると決定してプロセス2を実行することができる。グローバルスクリプトファイルに関連付けられたプロセスの全てが実行されるまで、上記ステップ104及び105が繰り返し実行される。
【0051】
本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法において、グローバルスクリプティングファイルがプロセスに関連付けている。グローバルスクリプトファイルには、プロセスとプロセスとの間の実行順序を予め格納されている。実行順序に基づいて、グローバルスクリプトファイルに関連付けられた各プロセスを順に実行し、複数のプロセスの共同スケジューリング及び制御を実現した。
【0052】
本願の一実施例では、上記プロセス実行命令は、循環プロセス実行命令と単一のプロセス実行命令とを含んでよい。プロセス実行命令が循環プロセス実行命令である場合、電子デバイスは、グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、ステップ102に戻り、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を改めて読み取り、グローバルスクリプトファイルに関連付けられたプロセスをループ実行する。プロセス停止命令を受信した後、電子デバイスは、ステップ102に戻ることを停止し、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取ることを停止する。
【0053】
プロセス実行命令が単一のプロセス実行命令である場合、電子デバイスは、グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取ることを停止し、即ち、グローバルスクリプトファイルに関連付けられたプロセスを1回だけ実行して今回のプロセススケジューリングを終了する。
【0054】
本願の一実施例において、電子デバイスがプロセス停止命令を受信した場合、電子デバイスは、グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、ステップ102に戻らない。本願の別の実施例において、電子デバイスがプロセス停止命令を受信した場合、電子デバイスは、現在実行中のプロセスの実行を停止し、ステップ102に戻ることを停止する。
【0055】
一実施例では、グローバルスクリプトファイルは、例えば、シングル実行制御ボタン、ループ実行制御ボタン及び実行停止の制御ボタンなど、複数の実行制御ボタンを提供する。
【0056】
ユーザがシングル実行制御ボタンをクリックしてシングル実行制御ボタンのトリガーイベントをトリガーすると、電子デバイスは、シングル実行制御ボタンのトリガーイベントに応答し、単一のプロセス実行命令を生成する。
【0057】
ユーザがループ実行制御ボタンをクリックしてループ実行制御ボタンのトリガーイベントをトリガーすると、電子デバイスは、ループ実行制御ボタンのトリガーイベントに応答し、循環プロセス実行命令を生成する。ユーザが実行停止の制御ボタンをクリックして実行停止の制御ボタンのトリガーイベントをトリガーすると、電子デバイスは、実行停止の制御ボタンのトリガーイベントに応答し、プロセス実行停止命令を生成する。
【0058】
図1に示す実施例に基づいて、本願実施例は、ビジョンソフトウェアのプロセススケジューリング方法を提供する。
図2を参照しながら説明する。
図2は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法の別の模式図である。理解の便宜上、以下、電子デバイスを実行の主体として説明するが、これに限定するものではない。このプロセススケジューリング方法は、下記のステップを含むことができる。
【0059】
ステップ201、プロセス実行命令を受信する。ステップ201はステップ101と同じである。
【0060】
ステップ202、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序と実行条件を読み取る。
【0061】
プロセス実行命令を受信した後、プロセス実行命令に基づいて、電子デバイスは、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序と実行条件を読み取る。
【0062】
本願実施例では、このグローバルスクリプトファイルにプロセスとプロセスとの間の実行順序と実行条件が予め格納された。ここで、実行順序とは、グローバルスクリプトファイルに関連付けられたプロセスの間の実行順序であり、実行条件とは、1つのプロセスを実行した後の次のプロセスを実行する条件である。上記の実行順序と実行条件は、実際のニーズに応じて設定可能である。
【0063】
一例として、実行条件は、1つのプロセスの実行結果を取得した後、次のプロセスを実行することであってもよく、または、実行条件は、前のプロセスが実行された後、所定の時間を待ってから次のプロセスを実行することであってもよい。
【0064】
例えば、グローバルスクリプトファイルに関連付けられたプロセスは、プロセス1、プロセス2及びプロセス3を含む。グローバルスクリプトファイルに予め格納された実行順序は、プロセス1-プロセス2-プロセス3である。プロセス1とプロセス2との間の実行条件は、プロセス1の実行結果を取得してからプロセス2を実行する。プロセス2とプロセス3との間の実行条件は、プロセス2を実行した後、所定の時間を待ってからプロセス3を実行する。
【0065】
上記のように1つのプロセスの実行結果を取得してから次のプロセスを実行するという実行条件は、現在のプロセスを実行し、現在のプロセスの実行結果を取得してから次のプロセスを決定し、さらに、決定された次のプロセスを現在のプロセスに更新して現在のプロセスを実行すること、と理解できる。
【0066】
上記のように1つのプロセスの実行結果を取得してから次のプロセスを実行するという実行条件は、1つのプロセスが予め格納された実行順序により指示された第1プロセスである場合、当該プロセスを直接実行し、1つのプロセスが予め格納された実行順序により指示された第1プロセスではない場合、当該プロセスの前のプロセスの実行結果を取得してから当該プロセスを実行すること、とも理解できる。
【0067】
ステップ203、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定する。ステップ203はステップ103と同じである。
【0068】
ステップ202の例で説明する。グローバルスクリプトファイルに予め格納された実行順序がプロセス1-プロセス2-プロセス3であり、電子デバイスは、グローバルスクリプトファイルに関連付けられたプロセス1が実行対象プロセスであると決定する。
【0069】
ステップ204、現在の動作環境が実行条件を満たすかどうかを判定する。満たす場合、ステップ205を実行する。満たさない場合、現在の動作環境が実行条件を満たすかどうかを判定し続ける。
【0070】
電子デバイスは、実行対象プロセスを決定した後、現在の動作環境が実行条件を満たすかどうかを判定する。満たす場合、電子デバイスは、実行対象プロセスが現在実行可能であると判定することができる。満たさない場合、電子デバイスは、実行対象プロセスが現在実行できないと判定し、現在の動作環境が実行条件を満たすまでステップ204を実行し続ける。
【0071】
ステップ205、実行対象プロセスを実行する。
【0072】
ステップ206、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定し、ステップ204に戻って実行する。
【0073】
ステップ203の例で説明する。電子デバイスは、プロセス1が実行対象プロセスであり、且つ現在の動作環境が実行条件を満たすと判定した場合、プロセス1を実行する。その後、電子デバイスは、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから、プロセス1を実行した後に実行すべき次のプロセス、即ち次の実行対象プロセスを決定する。上記のように、電子デバイスは、次の実行対象プロセスがプロセス2であると決定することができる。その後、電子デバイスは、ステップ204を実行し、現在の動作環境が実行条件を満たすかどうかを判定する。実行条件が1つのプロセスを実行した後に所定の時間を待ってから次のプロセスを実行することであれば、プロセス1が所定の時間を実行した後、電子デバイスは、現在の動作環境が実行条件を満たすと判定してプロセス2を実行するとともに、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから、プロセス2を実行した後に実行すべき次のプロセスを決定する。このように、グローバルスクリプトファイルに関連付けられた全てのプロセスを実行完了するまで、上記ステップ204~206を繰り返し実行する。
【0074】
本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法において、グローバルスクリプティングファイルがプロセスに関連付けている。グローバルスクリプトファイルには、プロセスとプロセスとの間の実行順序と実行条件が予め格納されている。実行順序と実行条件とに基づいて、グローバルスクリプトファイルに関連付けられた各プロセスを順に実行し、複数のプロセスの共同スケジューリング及び制御を実現した。
【0075】
本願の一実施例では、上記プロセス実行命令は、循環プロセス実行命令と単一のプロセス実行命令とを含んでよい。プロセス実行命令が循環プロセス実行命令である場合、電子デバイスは、グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、ステップ202に戻り、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序と実行条件を改めて読み取り、グローバルスクリプトファイルに関連付けられたプロセスをループ実行する。プロセス停止命令を受信した後、電子デバイスは、ステップ202に戻ることを停止し、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序と実行条件を読み取ることを停止する。
【0076】
プロセス実行命令が単一のプロセス実行命令である場合、電子デバイスは、グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序と実行条件を読み取ることを停止し、即ち、グローバルスクリプトファイルに関連付けられたプロセスを1回だけ実行して今回のプロセススケジューリングを終了する。
【0077】
本願実施例では、ユーザは異なるプロセススケジューリングのニーズに応じて、電子デバイスに異なるプロセス実行命令を入力し、さらに、電子デバイスは異なる方式でグローバルスクリプトファイルに関連付けられたプロセスを実行し、ユーザの多様なプロセススケジューリングのニーズを満たす。
【0078】
本願の一実施例では、プロセススケジューリングを容易にするために、電子デバイスは、プロセス実行命令を受信した後、グローバルスクリプトファイルに予め格納された各プロセスの実行結果とグローバル変数値との対応関係を読み取ることができる。実行対象プロセスを決定した場合、電子デバイスは、実行対象プロセスを実行し、実行対象プロセスの実行結果を取得する。電子デバイスは、読み取られた各プロセスの実行結果とグローバル変数値との対応関係に基づいて、実行対象プロセスの実行結果に対応している目標グローバル変数値を決定し、グローバル変数値を目標グローバル変数値に設定する。グローバル変数は、各プロセスのいずれでも取得できる変数である。
【0079】
このように、電子デバイスがグローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定して実行対象プロセスを実行する場合、電子デバイスは、実行対象プロセスの目標グローバル変数値に対応しているプロセスブランチを決定し、目標グローバル変数値に対応しているプロセスブランチを実行することができる。
【0080】
例えば、グローバル変数値がmであることは、プロセス2のプロセスブランチ1に対応し、グローバル変数値がnであることは、プロセス2のプロセスブランチ2に対応している。各プロセスの実行結果とグローバル変数値との対応関係は、{プロセス1の実行結果1、グローバル変数値がmである}と{プロセス1の実行結果2、グローバル変数値がnである}を含む。
【0081】
プロセス1を実行した後、取得されたプロセス1の実行結果が実行結果1である場合、電子デバイスは、各プロセスの実行結果とグローバル変数値との対応関係に基づいて実行結果1に対応している目標グローバル変数値がmであると決定する。電子デバイスは、プロセス1を実行した後に実行すべき次の実行対象プロセスがプロセス2であると決定し、プロセス2を実行すると、目標グローバル変数値mに基づいてプロセス2のプロセスブランチ1を実行する。
【0082】
プロセス1を実行した後、取得されたプロセス1の実行結果が実行結果2である場合、電子デバイスは、各プロセスの実行結果とグローバル変数値との対応関係に基づいて実行結果2に対応している目標グローバル変数値がnであると決定する。電子デバイスは、プロセス1を実行した後の次の実行対象プロセスがプロセス2であると決定し、プロセス2を実行する場合、目標グローバル変数値nに基づいてプロセス2のプロセスブランチ2を実行する。
【0083】
また例えば、プロセス11は、画像に対して検出と識別を行い、画像の中に車両が存在するかどうかを判定することである。プロセス12は、画像を取得することである。予め格納されたプロセス11の実行結果とグローバル変数値との対応関係は、{実行結果11:画像の中に車両が存在すると判定、グローバル変数値:取得頻度が10枚/秒である}と{実行結果12:画像の中に車両が存在しないと判定、グローバル変数値:取得頻度が4枚/秒である}を含む。
【0084】
電子デバイスは、プロセス11を実行した後、実行結果11を取得した場合、即ち、画像の中に車両が存在していると判定した場合、実行結果11に対応しているグローバル変数値が、取得頻度が10枚/秒であることを決定する。電子デバイスは、取得頻度のグローバル変数値を10枚/秒に設定する。電子デバイスは、プロセス11を実行した後の次の実行対象プロセスがプロセス12であると決定し、プロセス12を実行する際、10枚/秒の取得頻度で画像を取得する。
【0085】
実行結果12を取得した場合、即ち、画像の中に車両が存在しないと判定した場合、実行結果12に対応しているグローバル変数値が、取得頻度が4枚/秒であることを決定する。電子デバイスは、取得頻度のグローバル変数値を4枚/秒に設定する。電子デバイスは、プロセス11を実行した後の次の実行対象プロセスがプロセス12であると決定し、プロセス12を実行する際、4枚/秒の取得頻度で画像を取得する。
【0086】
本願実施例では、グローバル変数は、各プロセスのいずれでも取得できる変数である。グローバル変数値に基づいて、プロセスの間のデータ転送を実現し、プロセスの共同スケジューリングが容易になる。
【0087】
本願の一実施例では、プロセススケジューリングをしやすく、プロセススケジューリングの柔軟性を向上させるために、グローバルスクリプトファイルは、実行処理インターフェースと実行結果コールバックインターフェースを備える。グローバルスクリプトファイルにプロセスとプロセスとの間の実行順序が予め格納された場合、実行処理インターフェースにプロセスとプロセスとの間の実行順序が格納されており、グローバルスクリプトファイルにプロセスとプロセスとの間の実行順序と実行条件が予め格納された場合、実行処理インターフェースにプロセスとプロセスとの間の実行順序と実行条件が格納されている。実行結果コールバックインターフェースに各プロセスの実行結果とグローバル変数値との対応関係が格納されている。実行処理インターフェースはプロセス実行命令に応答し、グローバルスクリプトファイルに関連付けられたプロセスを実行するために用いられ、実行結果コールバックインターフェースは実行結果をコールバックするために用いられる。具体的に、
図3を参照し、グローバルスクリプトファイルに基づいてビジョンソフトウェアのプロセススケジューリング方法は、以下のステップを含む。
【0088】
ステップ301、プロセス実行命令を受信する。
【0089】
ステップ302、実行処理インターフェースを呼び出し、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序と実行条件を読み取る。
【0090】
ステップ303、実行処理インターフェースにおいて、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定する。
【0091】
ステップ304、実行処理インターフェースにおいて、現在の動作環境が実行条件を満たすかどうかを判定する。満たす場合、ステップ305を実行する。満たさない場合、現在の動作環境が実行条件を満たすかどうかを判定し続ける。
【0092】
ステップ305、実行処理インターフェースにおいて、実行対象プロセスを実行する。
【0093】
ステップ306、実行結果コールバックインターフェースを呼び出し、グローバルスクリプトファイルに予め格納された各プロセスの実行結果とグローバル変数値との対応関係を読み取る。
【0094】
本願実施例では、ステップ306は、ステップ301の後に実行される。ステップ306は、ステップ302~305のいずれかのステップの前に、又は後に行われてもよい。
【0095】
ステップ306は、ステップ308の前のいずれかのステップで実行されてもよい。ステップ306は1回だけ実行してよく、すなわち、最初にステップ301~309を実行するときにステップ306を実行し、その後、実行順序に基づいて各プロセスを順に実行する場合、ステップ304、305、307、308、および309をループ実行し、ステップ306を実行しない。ステップ306は複数回実行してよく、すなわち、最初にステップ301~309を実行するときにステップ306を実行し、その後、実行順序に基づいて各プロセスを順に実行する場合、ステップ304~309をループ実行する。
【0096】
ステップ307、実行結果コールバックインターフェースを呼び出し、実行対象プロセスの実行結果を取得する。
【0097】
ステップ308、実行結果コールバックインターフェースにおいて、各プロセスの実行結果とグローバル変数値との対応関係に基づいて、実行対象プロセスの実行結果に対応している目標グローバル変数値を決定する。
【0098】
ステップ309、実行処理インターフェースにおいて、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定し、ステップ304に戻って実行する。
【0099】
その後、電子デバイスは、ステップ304~309をループ実行するか、またはステップ304、305、307、308、および309をループ実行する。ここで、電子デバイスは、前回のループにおいて、グローバル変数値、例えば、ステップ308における目標グローバル変数値を決定した場合、実行処理インターフェースにおいて、ステップ305を再実行すると、実行対象プロセスにおける前回のループで決定された目標グローバル変数値に対応しているプロセスブランチを実行することができる。
【0100】
電子デバイスは、前回のループにおいて、グローバル変数値を決定していない場合、実行処理インターフェースにおいて、ステップ305を再実行すると、実行対象プロセスの全てのプロセスブランチを直接実行することができる。
【0101】
電子デバイスは、グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスが決定できない、即ちグローバルスクリプトファイルに関連付けられた全てのプロセスを実行完了するまで、ステップ304~309(またはステップ304、305、307、308、および309)をループ実行する。
【0102】
上記プロセス実行命令が循環プロセス実行命令である場合、グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、ステップ302を再実行し、プロセス停止命令を受信するまで、実行処理インターフェースを呼び出し、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序と実行条件を読み取る。具体的に、プロセス停止命令を受信すると、電子デバイスは実行処理インターフェースの呼び出しを停止する。
【0103】
上記のステップ301~309について簡単に説明したが、詳細の説明は、上記の関連する説明を参照してよい。
【0104】
本願の一実施例では、ユーザが異なるプロセスを容易に区別するために、プロセスごとに番号を割り当てて、異なるプロセスを番号で区別するようにしてよい。電子デバイスは、異なるプロセスの実行結果を取得した後、ユーザが容易に分析及び処理するために、異なるプロセスの実行結果を番号で区別してユーザに出力することができる。
【0105】
本願の一実施例では、プロセス制御の多様化を実現するために、電子デバイスは、外部装置によって送信された目標プロセスに対する外部実行命令を受信し、外部実行命令に基づいて目標プロセスを実行することができる。この外部実行命令は、通信データである。
【0106】
一実施例では、外部実行命令は、どのプロセスを実行するかを電子デバイスに指示するために用いられる。電子デバイスは、外部実行命令を受信した後、外部実行命令の指示に従って対応するプロセスを実行する。
【0107】
例えば、AAがプロセス1に対応し、BBがプロセス2に対応している。電子デバイスは、外部実行命令を解析してAAを取得した場合、プロセス1を実行する。また例えば、電子デバイスは、外部実行命令を解析してBBを取得した場合、プロセス2を実行する。
【0108】
別の実施例では、上記外部実行命令には構成パラメータとパラメータ値が含まれており、電子デバイスは外部実行命令を受信した後、目標プロセスにおける構成パラメータの値をパラメータ値に設定し、設定完了の目標プロセスを実行する。
【0109】
例えば、電子デバイスは外部実行命令を受信した後、外部実行命令を解析して「プロセス1、モジュール2、露出パラメータ:10000」を取得したので、プロセス1におけるモジュール2の露出パラメータを10000に設定し、設定完了の目標プロセスを実行する。
【0110】
一実施例では、外部実行命令により目標プロセスを実行するために、グローバルスクリプトファイルは、通信トリガーコールバックインターフェースをさらに備えることができる。通信トリガーコールバックインターフェースは、外部装置から送信された外部実行命令を受信し、受信された外部実行命令をコールバックするために用いられる。外部装置は、電子デバイスへ目標プロセスに対する外部実行命令を送信する。電子デバイスは、通信トリガーコールバックインターフェースを介して外部装置から送信された目標プロセスの外部実行命令を受信し、外部実行命令に基づいて目標プロセスを実行する。
【0111】
本願実施例では、外部実行命令を用いて、上記の循環プロセス実行命令、プロセス停止命令、単一のプロセス実行命令等の機能を実現することもでき、これに対して限定されない。
【0112】
本願実施例では、外部装置によって送信された外部実行命令は、バイナリデータであってよい。電子デバイスは、外部実行命令を受信した後、外部装置と予め決めたプロトコルに基づいて外部実行命令を解析し、解析によって得られたデータに基づいてプロセスの実行を制御する。決めたプロトコルは、具体的な応用に応じて柔軟に指定できる。本願実施例では、これに対して限定されない。
【0113】
本願の一実施例では、グローバルスクリプトファイルは、編集可能なものである。即ち、グローバルスクリプトファイルは、編集可能なスクリプトファイルであり、ビジュアルソフトウェアには、グローバルスクリプトファイルに対する編集ボックスが提供される。例えば、
図4に示すようなグローバルスクリプトファイルの編集ボックスがある。この編集ボックスの上部はコード編集エリアであり、グローバルスクリプトファイルのコードは、C#コード、Pythonコード、C++コードなどであってよく、コード行番号がコード編集エリアの左側に表示されている。コード編集エリアの下方は、コンパイルエラーや警告などを表示するためのコンパイル結果の表示エリア、即ちコンパイル結果エリアである。「コンパイル」ボタンはスクリプトコードをコンパイルするために用いられ、「インポート」ボタンは編集されたコードファイルをインポートするために用いられ、「エクスポート」ボタンは現在の編集されたコードをファイルにエクスポートするために用いられ、「例示」ボタンは編集された例示のコードを開くために用いられる。「権限設定」ボタンは、編集ボックスのパスワードを設定するために用いられ、パスワードを設定した後、グローバルスクリプトファイルの編集ボックスを開くためにパスワードを入力する必要がある。これにより、グローバルスクリプトファイルのセキュリティを向上させる。
図4は、本願実施例により提供される編集ボックスを示す。実際の応用において、他の形態の編集ボックスも使用することができ、本願実施例はこれに対して限定しない。
【0114】
編集可能なグローバルスクリプトファイルに基づいて、グローバルスクリプトファイルの実行処理インターフェース、実行結果コールバックインターフェース、通信トリガーコールバックインターフェースを書き直すことで、複数のプロセスに対する共同スケジューリングの制御を実現することできる。実行処理インターフェースと実行結果コールバックインターフェースを書き直す時に、スクリプトコードを呼び出して、単一のプロセス制御、プロセス内モジュールパラメータ設定、及びプロセス内モジュールパラメータ取得などのインターフェースを編集することができ、ビジョンプラットフォームが提供した単一のプロセスカスタム開発SDK(Software Development Kit)を呼び出すこともできる。カスタム開発SDKには、単一のプロセス制御、プロセス内モジュールパラメータ設定、及びプロセス内モジュールパラメータ取得などのインターフェースが提供されている。
【0115】
本願の一実施例では、電子デバイスは、グローバルスクリプトファイルとグローバルスクリプトファイルに関連付けられたプロセスをプロジェクトファイルとして保存することができる。この電子デバイスまたは他の電子デバイスは、当該グローバルスクリプティングファイルを使用してグローバルスクリプティングファイルに関連付けられたプロセスを制御する必要とする場合、直接にプロジェクトファイルをロードし、プロジェクトファイルを解析して、グローバルスクリプトファイルとグローバルスクリプトファイルに関連付けられたプロセスを取得することができる。ここで、グローバルスクリプトファイルを改めて編集する必要がないため、プロセススケジューリング及び制御の効率を向上させる。
【0116】
以下、
図5を参照し、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング方法について説明する。
【0117】
ステップ1、グローバルスクリプトファイルの編集ボックスを開く。
【0118】
ステップ2、グローバルスクリプトファイルのコード編集エリアでプロセス制御コードを編集する。具体的に、コード編集エリアで、実行処理インターフェース、実行結果コールバックインターフェース、通信トリガーコールバックインターフェースなどを書き直す。
【0119】
実行処理インターフェース、実行結果コールバックインターフェース、通信トリガーコールバックインターフェースなどを書き直す時に、電子デバイスは、スクリプトコードを用いて、単一のプロセスの実行制御やプロセス内モジュールパラメータの設定などを行うことができる。グローバルスクリプトファイルは、コードのインポートおよびエクスポートの機能を提供する。実行処理インターフェース、実行結果コールバックインターフェース、通信トリガーコールバックインターフェースなどを書き直す時に、電子デバイスは、ビジョンプラットフォームが提供したカスタム開発SDKを使用して、単一のプロセスの実行制御やプロセス内モジュールパラメータの設定などを行うことができる。
【0120】
ステップ3、プロセス制御コードをコンパイルする。
【0121】
ステップ4、コード編集のエラーが発生するかどうかを検出する。エラーが発生する場合、ステップ2を再実行する。エラーが発生しない場合、ステップ5を実行する。
【0122】
ステップ5、グローバルスクリプトファイルにより対応するプロセスを実行し、または、外部通信のトリガーにより対応するプロセスを実行する。詳細は、以下の通りである。
【0123】
グローバルスクリプトファイルにより対応するプロセスを実行することは、グローバルスクリプトファイルの実行制御ボタンに対するユーザのクリック操作を受信することを含む。ユーザがシングル実行制御ボタンをクリックすると、電子デバイスは実行処理インターフェースにおけるコードを1回呼び出し、グローバルスクリプトファイルに関連付けられた各プロセスを実行する。ユーザがループ実行制御ボタンをクリックすると、電子デバイスは実行処理インターフェースにおけるコードをループ呼び出し、グローバルスクリプトファイルに関連付けられた各プロセスを実行する。ユーザが実行停止制御ボタンをクリックすると、電子デバイスは実行処理インターフェースの呼び出しを停止する。実行処理インターフェースが呼び出された後、実行結果は、実行結果コールバックインターフェースを介してユーザにコールバックされる。
【0124】
外部通信を介して対応するプロセスの実行をトリガーする過程は、外部装置が通信データを電子デバイスに送信した後、通信トリガーコールバックインターフェースにおけるコードが呼び出され、対応するプロセスが実行されることを含む。
【0125】
上記2つのプロセスの実行方式については、相互の影響を避けるために、一方のプロセスの実行方式を利用して対応するプロセスを実行する過程において、他方のプロセスの実行方式を利用して対応するプロセスを実行することを禁止してよい。例えば、電子デバイスは、外部装置から送信された通信データに基づいて対応するプロセスを実行する際に、グローバルスクリプトファイルの実行制御ボタンに対するユーザのクリック操作を受信することを禁止する。
【0126】
上記2つのプロセスの実行方式については、相互の影響を避けるために、一方のプロセスの実行方式を利用して対応するプロセスを実行する過程において、他方のプロセスの実行方式を利用して対応するプロセスを実行することを受信すると、エラーメッセージが戻る。例えば、電子デバイスは、グローバルスクリプティングファイルの実行制御ボタンに対するユーザのクリック操作を受信し、このクリック操作により対応するプロセスを実行する際に、外部装置から送信された通信データを受信すると、外部装置にエラーメッセージが戻る。
【0127】
本願実施例では、上記2つのプロセスの実行方式が互いに影響を及ぼさない限り、他の方式で両方を処理することもできる。
【0128】
ステップ6、プロセスの実行結果に基づいて、グローバルスクリプトファイルのプロセス制御ロジックがアプリケーション要件を満たすかどうかを検出する。満たさない場合、ステップ2を再実行し、グローバルスクリプトのコードを変更する。満たす場合、ステップ7を実行する。
【0129】
ステップ7、グローバルスクリプトファイルの編集ボックスを閉じる。
【0130】
ステップ8、デバッグされたマルチプロセスおよびグローバルスクリプトファイルのコードをプロジェクトファイルとして保存する。次回の電子デバイス起動、ビジョンソフトウェアを実行するときに、プロジェクトファイルをロードすると、マルチプロセスおよびグローバルスクリプトファイルのコードを復元することができる。そのため、複数のプロセスを迅速に実行し、複数のプロセスの共同スケジューリング及び制御を実現する。
【0131】
上記ビジョンソフトウェアのプロセススケジューリング方法に基づいて、本願実施例は、ビジョンソフトウェアのプロセススケジューリング装置をさらに提供する。
図6を参照しながら説明する。
図6は、本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング装置の1つの模式図である。この装置は、プロセス実行命令を受信するために用いられる、第1受信手段601と、プロセス実行命令に基づいて、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取るために用いられる、第1読取手段602と、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから実行対象プロセスを決定するために用いられる、第1決定手段603と、実行対象プロセスを実行するために用いられる、第1実行手段604と、を備え、第1決定手段603は、さらに、実行順序に基づいて、グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定するために用いられる。
【0132】
好ましくは、第1読取手段602は、さらに、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行条件を読み取るために用いられ、第1実行手段604は、具体的に、現在の動作環境が前記実行条件を満たす場合、上記の実行対象プロセスを実行するために用いられることができる。
【0133】
好ましくは、
図7を参照し、上記のビジョンソフトウェアのプロセススケジューリング装置は、グローバルスクリプトファイルに予め格納された各プロセスの実行結果とグローバル変数値との対応関係を読み取るために用いられる、第2読取手段605と、実行対象プロセスを実行した後、実行対象プロセスの実行結果を取得するために用いられる、取得手段606と、各プロセスの実行結果とグローバル変数値との対応関係に基づいて、実行対象プロセスの実行結果に対応している目標グローバル変数値を決定するために用いられる、第2決定手段607と、をさらに備え、この場合、第1実行手段604は、具体的に、グローバルスクリプトファイルに関連付けられたプロセスから次の実行対象プロセスを決定した後、実行対象プロセスの目標グローバル変数値に対応しているプロセスブランチを実行するために用いられることができる。
【0134】
好ましくは、第1読取手段602は、さらに、プロセス実行命令が循環プロセス実行命令である場合、グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取り、プロセス停止命令を受信すると、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取ることを停止し、プロセス実行命令が単一のプロセス実行命令である場合、グローバルスクリプトファイルに関連付けられたプロセスのすべてが実行された後、グローバルスクリプトファイルに予め格納されたプロセスとプロセスとの間の実行順序を読み取ることを停止するために用いられることができる。
【0135】
好ましくは、上記のビジョンソフトウェアのプロセススケジューリング装置は、さらに、外部装置から送信された目標プロセスに対する外部実行命令を受信するために用いられる、第2受信手段と、目標プロセスを実行するために用いられる、第2実行手段と、を備えることができる。
【0136】
好ましくは、外部実行命令には、構成パラメータとパラメータ値が含まれており、第2実行手段は、具体的に、目標プロセスにおける構成パラメータの値をパラメータ値に設定し、設定された目標プロセスを実行するために用いられることができる。
【0137】
好ましくは、グローバルスクリプトファイルは、実行処理インターフェースと、実行結果コールバックインターフェースと、通信トリガーコールバックインターフェースと、を備え、実行処理インターフェースには、プロセスとプロセスとの間の実行順序及び実行条件が格納されており、実行結果コールバックインターフェースには、各プロセスの実行結果とグローバル変数値との対応関係が格納されており、実行処理インターフェースはプロセス実行命令に応答し、グローバルスクリプトファイルに関連付けられたプロセスを実行するために用いられ、実行結果コールバックインターフェースは実行結果をコールバックするために用いられ、通信トリガーコールバックインターフェースは外部装置から送信された外部実行命令を受信するために用いられる。
【0138】
好ましくは、グローバルスクリプトファイルは、編集可能なスクリプトファイルであり、ビジュアルソフトウェアはグローバルスクリプトファイルの編集ボックスを提供する。
【0139】
好ましくは、上記のビジョンソフトウェアのプロセススケジューリング装置は、ビジュアルソフトウェアに、グローバルスクリプティングファイルとグローバルスクリプティングファイルに関連付けられたプロセスとを含むプロジェクトファイルをローディングするために用いられる、ローディング手段と、プロジェクトファイルを解析してグローバルスクリプトファイルとグローバルスクリプトファイルに関連付けられたプロセスを取得するために用いられる、解析手段と、をさらに備える。
【0140】
本願実施例により提供されるビジョンソフトウェアのプロセススケジューリング装置において、グローバルスクリプティングファイルがプロセスに関連付けている。グローバルスクリプトファイルには、プロセスとプロセスとの間の実行順序が予め格納されている。実行順序に基づいて、グローバルスクリプトファイルに関連付けられた各プロセスを順に実行し、複数のプロセスの共同スケジューリング及び制御を実現した。
【0141】
上記ビジョンソフトウェアのプロセススケジューリング方法に基づいて、本願実施例は、電子デバイスを提供する。電子デバイスは、
図8に示すように、プロセッサー801と、機器読取可能な記憶媒体802と、を備え、機器読取可能な記憶媒体802には、プロセッサー801によって実行可能な機器実行可能命令が記憶されている。プロセッサー801は、機器実行可能命令により、上記のビジョンソフトウェアのプロセススケジューリング方法のいずれかのステップを実現するように実行させる。
【0142】
1つの選択可能な実施例では、
図8に示すように、電子デバイスは、通信インターフェイス803と通信バス804を備え、ここで、プロセッサー801と、機器読取可能な記憶媒体802と、通信インターフェイス803とは通信バス804を介して相互の通信を行い、通信インターフェイス803は、上記の電子デバイスと他のデバイスとの間の通信を行うために用いられる。
【0143】
上記ビジョンソフトウェアのプロセススケジューリング方法に基づいて、本願実施例は、プロセッサーによって実行可能な機器実行可能命令が記憶されている機器読取可能な記憶媒体を提供する。プロセッサーは、機器実行可能命令により、上記のビジョンソフトウェアのプロセススケジューリング方法のいずれかのステップを実現するように実行させる。
【0144】
上記ビジョンソフトウェアのプロセススケジューリング方法に基づいて、本願実施例は、コンピュータプログラムを提供する。コンピュータプログラムは、プロセッサーに上記のビジョンソフトウェアのプロセススケジューリング方法のいずれかのステップを実現するように実行させる。
【0145】
上記通信バスは、PCI(Peripheral Component Interconnec)バスまたはEISA(Extended Industry Standard Architecture)バスなどであってよい。この通信バスは、アドレスバス、データバス、制御バスなどに分けることができる。
【0146】
上記機器読取可能な記憶媒体は、RAM(Random Access Memory)を含んでよく、NVM(Non-Volatile Memory)を含んでもよく、例えば、少なくとも1つの磁気ディスク装置である。また、機器読取可能な記憶媒体は、上記のプロセッサーから離れた少なくとも1つの記憶装置であってもよい。
【0147】
上記プロセッサーは、CPU(Central Processing Unit)、NP(Network Processor)などを含む汎用プロセッサーであってもよく、DSP(Digital Signal Processing)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)または他のプログラマブルロジックデバイス、ディスクリートゲートあるいはトランジスタロジックデバイス、ディスクリートハードウェアコンポーネントであってもよい。
【0148】
なお、本明細書において、第1や第2のような関係用語は、1つのエンティティ又は操作を他のエンティティ又は操作と区別することに用いられるもの過ぎず、これらのエンティティ又は操作の間にこのような実際的な関係又は順序が存在することをリクエスト又は示唆しない。また、用語「備える」、「含む」、又はその他の変形は、非排他的な包含を意図し、一連の要素を含むプロセス、方法、物品、又はデバイスがそれらの要素だけでなく、明示的に列挙されていない他の要素を含み、或いは、このようなプロセス、方法、物品又はデバイスにおける固有の要素を含む。特に制限がない限り、「1つの…を含む」により限定される要素は、上記要素を含むプロセス、方法、物品又はデバイスがさらに他の同一な要素を有することを排除するものではない。
【0149】
なお、本明細書における各実施例は、相互に関連したように記載されているが、各実施例間の同一または類似の部分は、互いに参照すればよく、各実施例と他の実施例との相違点が中心に説明される。特に、ビジョンソフトウェアのプロセススケジューリング装置、電子デバイス、機器読取可能な記憶媒体及びコンピュータプログラムの実施例に対し、ビジョンソフトウェアのプロセススケジューリング方法にほぼ類似するので、説明が簡単であり、関連する部分はビジョンソフトウェアのプロセススケジューリング方法の実施例に参照すればよい。
【0150】
以上の説明は、本願の好ましい実施例にすぎず、本願の保護範囲を限定するものではない。本願の精神及び原則の範囲内で行われた任意の補正、同等の置換、変更等は、いずれも本願の保護範囲内に含まれるものとする。
【国際調査報告】