Titech Cansat / MU2

Dependents:   EM_ver1 template FM_ver3_for_ARLISS FM_ver3_for_test

Revision:
0:48505968b10e
Child:
1:dcb1eee964d5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MU2.cpp	Tue Jul 16 12:05:44 2019 +0000
@@ -0,0 +1,67 @@
+#include "MU2.h"
+#include "mbed.h"
+#include "stdint.h"
+#include <string>
+#include <sstream>
+
+MU2::MU2(PinName tx,PinName rx) //MU2クラスのMU2という関数(コンストラクタ)の定義
+{
+    _tx=tx;
+    _rx=rx;
+}
+
+/*MU2::MU2(PinName tx,PinName rx) : Serial(tx,rx){
+}*/
+
+
+void MU2::send(char Message[])
+{
+    Serial MuPort(_tx,_rx);
+    Serial pc(USBTX,USBRX);
+
+    MuPort.baud(19200);
+    pc.baud(9600);
+
+    int index=0;
+    std::string send_data;
+
+    uint8_t last_data[]= {0x0d,0x0a}; //復帰、改行のアスキーコードを16進数で表す
+
+
+    int j=0;
+    while(Message[j]!='\0')  {
+        j++;
+    }
+    index=j;//
+
+
+    send_data="@DT";
+
+    if(index<16) {
+        std::stringstream ss;  //stiringstreamクラスのstd::hexマニュピレータを用いて変換。<sstream>のincludeが必要。
+        ss << std::hex << index ; //indexを16進数に変換
+        std::string str_ss = ss.str();
+        send_data += '0'+str_ss;
+    } else {
+        std::stringstream ss;  //stiringstreamクラスのstd::hexマニュピレータを用いて変換。<sstream>のincludeが必要。
+        ss << std::hex << index ; //indexを16進数に変換
+        std::string str_ss = ss.str();
+        send_data += str_ss;
+    }
+
+
+    for(int n=0; n<index+1; n++) {
+        send_data += Message[n];
+    }
+
+
+    pc.printf("%s\n",send_data.c_str());
+
+
+    MuPort.printf("%s", send_data.c_str());//.c_str()でstring型のstrを変換
+
+
+    for(int i=0; i<2; i++) {
+        MuPort.putc(last_data[i]);
+    }
+}
\ No newline at end of file