![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
スマートコンセント(富士通 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との整合により難しいかもしれません)
Revision 6:08a406cd2726, committed 2012-09-30
- Comitter:
- yueee_yt
- Date:
- Sun Sep 30 12:45:05 2012 +0000
- Parent:
- 5:96a70a8cebb9
- Commit message:
- 2????????????
Changed in this revision
diff -r 96a70a8cebb9 -r 08a406cd2726 FiapV2.lib --- a/FiapV2.lib Sun Sep 30 07:41:28 2012 +0000 +++ b/FiapV2.lib Sun Sep 30 12:45:05 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/yueee_yt/code/FiapV2/#cc924e783dff +http://mbed.org/users/yueee_yt/code/FiapV2/#0b203716e92b
diff -r 96a70a8cebb9 -r 08a406cd2726 USBHost.cpp --- a/USBHost.cpp Sun Sep 30 07:41:28 2012 +0000 +++ b/USBHost.cpp Sun Sep 30 12:45:05 2012 +0000 @@ -28,7 +28,7 @@ #define MAX_ENDPOINTS_TOTAL 16 // Max number of endpoints total #define MAX_ENDPOINTS_PER_DEVICE 8 // Max number of endpoints for any one device -#define USBLOG 1 +#define USBLOG 0 #if USBLOG #define LOG(...) printf(__VA_ARGS__) #else @@ -37,7 +37,7 @@ // USB host structures -#define USB_RAM_SIZE 4096 // AHB SRAM block 1 TODO MACHINE DEPENDENT +#define USB_RAM_SIZE 16*1024 // AHB SRAM block 1 TODO MACHINE DEPENDENT //#define USB_RAM_SIZE 16*1024 // AHB SRAM block 1 TODO MACHINE DEPENDENT //#define USB_RAM_BASE 0x20080000 //#define USB_RAM_BASE 0x2007C000 @@ -895,7 +895,7 @@ // Host controller instance and Interrupt handler //static HostController _controller __attribute__((at(USB_RAM_BASE))); -static __align(4096) HostController _controller __attribute__((section("AHBSRAM1"))); +static __align(256) HostController _controller __attribute__((section("AHBSRAM1"))); extern "C" void USB_IRQHandler(void) __irq; void USB_IRQHandler (void) __irq
diff -r 96a70a8cebb9 -r 08a406cd2726 main.cpp --- 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; + } } }