ロボットアームを用いたロボットシステム開発をしております。私は主にソフトウェアエンジニアですので、機械関連や回路、ネットワーク関連のご相談をしております。
×
固定報酬制
|
ワーカーと相談する
|
---|---|
納品完了日
|
2017年11月17日 |
掲載日
|
2017年11月06日 |
応募期限
|
2017年11月16日 |
必要なスキル
|
応募した人 | 4 人 |
---|---|
契約した人 | 2 人 |
募集人数 | 1 人 |
気になる!リスト | 10 人 |
下記の要件を満たす、コンソールアプリケーションの開発をお願いしたいと考えています。 【要件のご説明】 ・1回の処理に40ミリ秒かかる関数Aと、 ・1回の処理に8ミリ秒かかる関数Bを、 ・同時に実行して、 ・だいたい、関数Aが1回実行される間に、 ・関数Bが5回実行されるコンソールアプリケーション。 ・このとき、関数Aではint型の変数を2個更新します。 ・関数Bではそのときどきのint型の変数の値を取得したいです。 厳密に、関数Bの実行5回に、関数Aの実行が1度行われなければならないわけではありません。 あくまで目安です。 【背景】 開発いただくプログラムの用途についてご説明いたします。 ・関数A(40ミリ秒)では、USBカメラから画像を取り込み、画像処理を行います。 (USBカメラは画像の取り込みに40ミリ秒かかり、短縮することはできません。) ・関数B(8ミリ秒)では、外部のマイコンに値を送信します。 (UDP通信によって送信し、マイコンの受信頻度は8ミリ秒かかり、短縮することはできません。) これらの関数A、Bによって、画像処理によって得た情報をマイコンに送信し続けます。 外部のマイコンには、10ミリ秒以下の頻度でタイムスタンプを送り続ける必要があり、 関数A→関数B(合計:48ミリ秒に1回)という順次処理では間に合いません。 【今回の開発には不要の作業】 関数A、関数Bの中身は、実装いただく必要はありませんので、以下のようにSleepさせていただければ結構です。 func_A(){ Sleep(40); } func_B(){ Sleep(8); } 【自分でやってみて、うまくいかなかった例】 きちんと並列化を理解しておらず、うまくできていません。 #include <thread> #include <exception> void func_A (int x, int y) { Sleep(40); } void func_B () { Sleep(8); } int main() { while (1) { try { std::thread t1(func_A, std::ref(x) , std::ref(y)); std::thread t2(func_B); t1.join(); t2.join(); } catch (std::exception &ex) { std::cerr << ex.what() << std::endl; } } return (0); } ※実際のWindowsアプリ開発の進め方・別途詳細は、クラウドワークスのメッセージでやりとりして決められればと思います。 たくさんのエンジニア・プログラマの方からのご連絡・ご応募お待ちしております。 |
特記事項 |
---|
|