2016-08-20 17 views
0

LoRaラジオ付きAdafruit Feather M0ボードを使用して、GPS位置を受信者に送信します。私はchar配列を作成し、それを送信するために、次のコードを使用していますISO 8601のタイムスタンプと緯度/ロングGPS値を持つデータパケットを作成しようとすると:'const char *'と 'const char [2]'から 'const char [2]' to binary 'operand +'の無効オペランド

char radiopacket[40] = {GPS.year + "-" + GPS.month + "-" + GPS.day + "T" + GPS.hour + ":" + GPS.minute + ":" + GPS.seconds + "Z" + "," + GPS.latitude + "," + GPS.longitude}; 
rf95.send((uint8_t *)radiopacket, 40); 

を私はエラーを取得しておいてください。

invalid operands of types 'const char*' and 'const char [2]' to binary 'operator+'

どこが間違っていますか?

答えて

0

あなたは

char radiopacket[40]; 
sprintf(radiopacket, "%04d-%02d-%02dT%02d:%02d:%02dZ,%f,%f", GPS.year, GPS.month, GPS.day, GPS.hour, GPS.minute, GPS.seconds, GPS.latitude, GPS.longitude); 
rf95.send((uint8_t *)radiopacket, 40); 

は私が推測するつもりだsprintf

+1

'sprintf'が安全ではないです、[ここ](https://stackoverflow.com/a/3662918/2666212)を参照してください、代わりに' snprintf'を使用してください – Mike

+0

おかげで!それが働いた –

0

内のフォーマット文字列("%04d-...")上のいくつかのドキュメントのためのhereを見るようなものを試してみてくださいC.にそのような文字列を連結することはできませんあなたはPythonから来ていると言います。私は何が必要だと思う

std::stringstream

関連する問題