スマートコンセント(富士通 FX-5204PS)をIEEE1888 StorageにWRITEするサンプルプログラムです。
Dependencies: EthernetInterface FiapV2 HTTPClientForSOAP NTPClient TextLCD mbed-rtos mbed spxml
Fork of BlueUSB_f by
スマートコンセント(富士通 FX-5204PS)をIEEE1888 StorageにWRITEするサンプルプログラムです。
USB HUBを使用して2台利用した例です。
表示のみは http://mbed.org/users/yueee_yt/code/BlueUSB_f/で公開しています。
BlueUSBより派生していますが、BluetoothとMass Storage Classは利用できません。
2台まで確認していますが、プログラム的には10台まで接続できるようにしています。
(RTOSとの整合により難しいかもしれません)
Diff: main.cpp
- Revision:
- 6:08a406cd2726
- Parent:
- 5:96a70a8cebb9
--- a/main.cpp Sun Sep 30 07:41:28 2012 +0000
+++ b/main.cpp Sun Sep 30 12:45:05 2012 +0000
@@ -19,7 +19,9 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-
+#ifndef OS_TICK
+#define OS_TICK 50000
+#endif
#include "USBHost.h"
#include "Utils.h"
#include "TextLCD.h"
@@ -36,9 +38,25 @@
Ticker timer1;
time_t ctTime;
char timezone[] = "+09:00"; // JST
+char atemp1[6],atemp2[6],avolt1[6],avolt2[6],afreq1[6],afreq2[6];
+char apower_a1[6],apower_a2[6],apower_b1[6],apower_b2[6],apower_c1[6],apower_c2[6],apower_d1[6],apower_d2[6];
char atemp[6],avolt[6],afreq[6], apower1[6],apower2[6],apower3[6],apower4[6];
FIAP fiap("http://192.168.1.3/axis2/services/FIAPStorage");
struct fiap_element element[]= {
+ {"http://www.gutp.jp/SmartTap1/temp",atemp1,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap1/volt",avolt1,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap1/freq",afreq1,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap1/watt_1",apower_a1,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap1/watt_2",apower_b1,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap1/watt_3",apower_c1,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap1/watt_4",apower_d1,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap2/temp",atemp2,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap2/volt",avolt2,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap2/freq",afreq2,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap2/watt_1",apower_a2,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap2/watt_2",apower_b2,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap2/watt_3",apower_c2,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+ {"http://www.gutp.jp/SmartTap2/watt_4",apower_d2,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
{"http://www.gutp.jp/SmartTap1/temp",atemp,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
{"http://www.gutp.jp/SmartTap1/volt",avolt,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
{"http://www.gutp.jp/SmartTap1/freq",afreq,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
@@ -119,9 +137,9 @@
}
if(t2>1) { //Data to LCDText
t2.start();
- if(SerialNo[0]==0)led1=0;
- else led1=1;
- lcd.locate(0,0);
+ if(SerialNo[0]==0)led1=0;else led1=1;
+ if(SerialNo[1]==0)led2=0;else led2=1;
+ lcd.locate(0,0);
lcd.printf("1:%4.0fW 2:%4.0fW",WattData1[0],WattData2[0]);
lcd.locate(0,1);
lcd.printf("3:%4.0fW 4:%4.0fW",WattData3[0],WattData4[0]);
@@ -135,7 +153,7 @@
printf("Storage Store %s \r\n",buffer);
// Save to FIAPStorage
struct tm t = *localtime(&ctTime);
- for(i=0; i<7; i++) {
+ for(i=0; i<14; i++) {
element[i].year=t.tm_year+1900;
element[i].month=t.tm_mon+1;
element[i].day=t.tm_mday;
@@ -143,16 +161,31 @@
element[i].minute=t.tm_min;
element[i].second=t.tm_sec;
}
- sprintf(atemp,"%4.1f",TempData[0]);
- sprintf(avolt,"%4.1f",VoltData[0]);
- sprintf(afreq,"%4.1f",FreqData[0]);
- sprintf(apower1,"%4.0f",WattData1[0]);
- sprintf(apower2,"%4.0f",WattData2[0]);
- sprintf(apower3,"%4.0f",WattData3[0]);
- sprintf(apower4,"%4.0f",WattData4[0]);
- fiap.post(element,7);
+ for(i=0; i<2; i++) {
+ switch(SerialNo[i]) {
+ case 0x1737:
+ sprintf(atemp1,"%4.1f",TempData[i]);
+ sprintf(avolt1,"%4.1f",VoltData[i]);
+ sprintf(afreq1,"%4.1f",FreqData[i]);
+ sprintf(apower_a1,"%4.0f",WattData1[i]);
+ sprintf(apower_b1,"%4.0f",WattData2[i]);
+ sprintf(apower_c1,"%4.0f",WattData3[i]);
+ sprintf(apower_d1,"%4.0f",WattData4[i]);
+ break;
+ case 0x1871:
+ sprintf(atemp2,"%4.1f",TempData[i]);
+ sprintf(avolt2,"%4.1f",VoltData[i]);
+ sprintf(afreq2,"%4.1f",FreqData[i]);
+ sprintf(apower_a2,"%4.0f",WattData1[i]);
+ sprintf(apower_b2,"%4.0f",WattData2[i]);
+ sprintf(apower_c2,"%4.0f",WattData3[i]);
+ sprintf(apower_d2,"%4.0f",WattData4[i]);
+ break;
+ }
+ }
+ fiap.post(element,14);
led3=0;
- led2=!led2;
+
}
}
}
