質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

3回答

916閲覧

windowsとラズパイ間でのデータの受け渡し方法に関して

mk201946

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

1クリップ

投稿2020/11/11 15:57

閲覧ありがとうございます

前提・実現したいこと

現在研究室で実験装置の構築を行っております。
構成としてはwindowsに繋がった実験装置Aと、ラズパイに繋がった実験装置Bがあります。
ドライバやライブラリの関係上、それぞれの実験装置を1つのコンピュータに統合することは難しい状況です。
また厄介なことに、実験装置Aの処理はC++、実験装置Bの処理はpythonに記述されています。
研究室の方針で言語の変更は難しいため、こちらは変更しない方針でお願いいたします。

実現したいこととしては、それぞれ別のコンピュータ間かつ別のプログラミング言語間で実験装置間の同期を取りたいと考えています。

プログラムの流れとしては
(Windows側)実験装置Aの処理を実行

(ラズパイ側)実験装置Aの処理の終了を検知

(ラズパイ側)実験装置Bの処理を実行

(windows側)実験装置Bの処理の終了を検知
(これらの処理を1万回ほど繰り返す)

と言った流れで実行したいと考えています。

このプログラムを作成するにおいて、コンピュータ間で実験装置の処理の終了を検知するにはソケット通信を行うことで実現が可能だと考えています。

前置きが長くなりましたが、今回の質問の趣旨としては、ソケット通信以外のより実装が簡単な方法で要件を満たすプログラムを作成することが出来るかを伺いたいです。

よろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2020/11/11 23:44

> ソケット通信を行うことで実現が可能だと考えています。 で、 > ソケット通信以外のより実装が簡単な方法で要件を満たすプログラムを作成することが出来るか ソケット通信ではどういう問題があるのですか? それを知らずに代案の提示もしようがないと思いますが。
dodox86

2020/11/12 00:46

何となく回答しづらいご質問ですね。ソケット通信に替わる実装が簡単な方法、とは。簡単と思うかどうかは実装を担当する者にもよるので。ラズパイ側にsambaサーバーが既に建っていれば、ファイル共有で処理の終了を表すファイル作成で同期をやってやれないこともないですし、 双方にWEBサーバーが建っていれば、相互にリクエストを送り合うことで同期することもやってやれないことはありません。それを変と思うか難しいと思うか担当者次第です。
coco_bauer

2020/11/12 01:16

実験装置A、実験装置B、それぞれで処理をした結果を保存したり、もう一方の装置と共有したり、というような事は必要ないのですか? 実験を繰り返す途中で問題が生じた場合に、途中から再開できるのと、最初っから全てやり直ししないといけないのでは、リカバリーの時間と手間が相当違うと思うのですが。
guest

回答3

0

ZeroMQ はどうでしょう。

投稿2020/11/12 04:17

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

PCと1対1でいいなら、シリアル通信でコマンドのやり取りするのが一番手っ取り早いですね。

あとはネットワーク経由でするなら、UDPとかTCPソケットを使ってコマンドやり取りってことになりますが、設定やらなんやら色々ややこしいですね

投稿2020/11/12 00:36

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

gRPCとか。

投稿2020/11/11 17:04

gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問