RTno is communicating library and framework which allows you to make your embedded device capable of communicating with RT-middleware world. RT-middleware is a platform software to realize Robotic system. In RTM, robots are developed by constructing robotics technologies\' elements (components) named RT-component. Therefore, the RTno helps you to create your own RT-component with your mbed and arduino. To know how to use your RTno device, visit here: http://ysuga.net/robot_e/rtm_e/rtc_e/1065?lang=en To know about RT-middleware and RT-component, visit http://www.openrtm.org

Dependencies:   EthernetInterface mbed-rtos

Files at this revision

API Documentation at this revision

Comitter:
ysuga
Date:
Thu Aug 29 05:26:09 2013 +0000
Parent:
5:c4f627187f9b
Child:
7:6c7af1d50fb3
Commit message:
RTno updt

Changed in this revision

EtherTcp.cpp Show annotated file Show diff for this revision Revisions of this file
EtherTcp.h Show annotated file Show diff for this revision Revisions of this file
EthernetInterface.lib Show annotated file Show diff for this revision Revisions of this file
EthernetNetIf.lib Show diff for this revision Revisions of this file
RTno.h Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
rtcconf.h Show annotated file Show diff for this revision Revisions of this file
--- a/EtherTcp.cpp	Mon Jul 08 13:09:22 2013 +0000
+++ b/EtherTcp.cpp	Thu Aug 29 05:26:09 2013 +0000
@@ -1,7 +1,12 @@
 #include "mbed.h"
+#define RTNO_SUBMODULE_DEFINE
+#include "RTno.h"
+
+#ifdef USE_ETHERNET_CONNECTION
+
 #include "EtherTcp.h"
-#include "EthernetNetIf.h"
-#include "TCPSocket.h"
+#include "EthernetInterface.h"
+
 
 #include "ip_addr.h"
 /**
@@ -11,16 +16,16 @@
 static EthernetServer *m_pServer;
 static EthernetClient *m_pClient;
 */
-static EthernetNetIf* m_pInterface;
-static TCPSocket* m_pServerSocket;
-static TCPSocket* m_pClientSocket;
+//static EthernetInterface* m_pInterface;
+static TCPSocketServer* m_pServerSocket;
+static TCPSocketConnection m_ClientSocket;
 
 
 #define ETCP_RX_BUFFER_SIZE 128
 uint8_t etcp_rx_buffer[ETCP_RX_BUFFER_SIZE];
 int etcp_rx_buffer_pointer_head = 0;
 int etcp_rx_buffer_pointer_tail = 0;
-Host m_Client;
+///Host m_Client;
 
 Serial *pSerial;
 
@@ -56,6 +61,7 @@
     return size;
 }
 
+/*
 static void EtherTcp_onClientEvent(TCPSocketEvent e) {
   switch (e) {
   // If the socket is readable, do stuff
@@ -88,28 +94,27 @@
     m_pClientSocket->setOnEvent(EtherTcp_onClientEvent);
   }
 }
+*/
 
-void EtherTcp_init(uint8_t* mac, uint8_t* ip, 
-           uint8_t* gateway, uint8_t* subnet,
+void EtherTcp_init(/*const char* mac, */const char* ip, 
+           const char* gateway, const char* subnet,
            uint16_t port) 
 
 {
   pSerial = new Serial(USBTX, USBRX);
-  m_pInterface = new EthernetNetIf(
-       IpAddr(ip[0], ip[1], ip[2], ip[3]), 
-       IpAddr(subnet[0], subnet[1], subnet[2], subnet[3]),
-       IpAddr(gateway[0], gateway[1], gateway[2], gateway[3]),
-       IpAddr(gateway[0], gateway[1], gateway[2], gateway[3]));    
-  printf("Hello %d %d %d %d\r\n", ip[0], ip[1], ip[2], ip[3]);
-  EthernetErr ethErr = m_pInterface->setup();
-  if (ethErr) {
-    return;
-  }  
+  EthernetInterface::init(
+       ip, subnet, gateway);
+  //printf("Hello %d %d %d %d\r\n", ip[0], ip[1], ip[2], ip[3]);
+  //EthernetErr ethErr = m_pInterface->setup();
+  //if (ethErr) {
+ //  return;
+ // }  
   
-  m_pServerSocket = new TCPSocket();
-  m_pServerSocket->setOnEvent(EtherTcp_onServerEvent);
-  m_pServerSocket->bind(Host(IP_ADDR_ANY, port));
+  m_pServerSocket = new TCPSocketServer();
+  //m_pServerSocket->setOnEvent(EtherTcp_onServerEvent);
+  m_pServerSocket->bind(port);
   m_pServerSocket->listen();
+  m_pServerSocket->accept(m_ClientSocket);
   SerialDevice_available = EtherTcp_available;
   SerialDevice_getc = EtherTcp_getc;
   SerialDevice_putc = EtherTcp_putc;
@@ -117,20 +122,22 @@
 
 uint8_t EtherTcp_available()
 {
-  Net::poll();
+  //Net::poll();
   return etcp_rx_buffer_get_size();
 }
 
 
 void EtherTcp_putc(const char c) {
-  if(m_pClientSocket != NULL) {
-    m_pClientSocket->send(&c, 1);
+  char d = c;
+    m_ClientSocket.send(&d, 1);
   }
-}
 
 uint8_t EtherTcp_getc()
 {
   uint8_t c;
-  etcp_rx_buffer_pop(&c);
+  m_ClientSocket.receive((char*)&c, 1);
+  //etcp_rx_buffer_pop(&c);
   return c;
 }
+
+#endif
\ No newline at end of file
--- a/EtherTcp.h	Mon Jul 08 13:09:22 2013 +0000
+++ b/EtherTcp.h	Thu Aug 29 05:26:09 2013 +0000
@@ -5,8 +5,11 @@
 #include <stdint.h>
 #include "SerialDevice.h"
 
-void EtherTcp_init(uint8_t* mac, uint8_t *ip, uint8_t *gateway, uint8_t *subnet, uint16_t port);
-
+//void EtherTcp_init(uint8_t* mac, uint8_t *ip, uint8_t *gateway, uint8_t *subnet, uint16_t port);
+void EtherTcp_init(/*const char* mac, */const char* ip, 
+           const char* gateway, const char* subnet,
+           uint16_t port) ;
+           
 void EtherTcp_putc(const char c);
 uint8_t EtherTcp_available();
 uint8_t EtherTcp_getc();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetInterface.lib	Thu Aug 29 05:26:09 2013 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/EthernetInterface/#3018af573638
--- a/EthernetNetIf.lib	Mon Jul 08 13:09:22 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-https://mbed.org/users/sherckuith/code/EthernetNetIf/#479ce5546098
--- a/RTno.h	Mon Jul 08 13:09:22 2013 +0000
+++ b/RTno.h	Thu Aug 29 05:26:09 2013 +0000
@@ -17,7 +17,7 @@
 
 
 #define USE_UART_CONNECTION
-#define USE_ETHERNET_CONNECTION
+//#define USE_ETHERNET_CONNECTION
 #define USE_TIMER1_EC
 
 #include "mbed.h"
@@ -32,7 +32,7 @@
 
 #ifdef USE_ETHERNET_CONNECTION
 #include "EtherTcp.h"
-#include "EthernetNetIf.h"
+#include "EthernetInterface.h"
 #endif
 
 #ifdef USE_TIMER1_EC
@@ -132,10 +132,10 @@
   switch(conf._default.connection_type) {
 #ifdef USE_ETHERNET_CONNECTION
   case ConnectionTypeEtherTcp:
-    EtherTcp_init((uint8_t*)&conf._default.mac_address,
-          (uint8_t*)&conf._default.ip_address,
-          (uint8_t*)&conf._default.default_gateway,
-          (uint8_t*)&conf._default.subnet_mask,
+    EtherTcp_init(//(uint8_t*)&conf._default.mac_address,
+          conf._default.ip_address,
+          conf._default.default_gateway,
+          conf._default.subnet_mask,
               conf._default.port);
     break;
 #endif // USE_ETHERNET_CONNECTION
@@ -164,9 +164,6 @@
 int main(void) {
     setup();
     while(1) {
-#ifdef USE_ETHERNET_CONNECTION
-        Net::poll();
-#endif
         loop();
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Thu Aug 29 05:26:09 2013 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#58b30ac3f00e
--- a/rtcconf.h	Mon Jul 08 13:09:22 2013 +0000
+++ b/rtcconf.h	Thu Aug 29 05:26:09 2013 +0000
@@ -18,9 +18,9 @@
   //#ifdef USE_ETHERNET_CONNECTION
   uint64_t mac_address;
   uint16_t port;
-  uint32_t default_gateway;
-  uint32_t ip_address;
-  uint32_t subnet_mask;
+  char* default_gateway;
+  char* ip_address;
+  char* subnet_mask;
   //#endif
 
   //#ifdef USE_UART_CONNECTION