TCP/IP based digital io controller for operating DigitalsOuts and reading DigitalIns.
Dependencies: EthernetInterface NetworkAPI mbed-rtos mbed
Fork of NetRelais by
Revision 11:e5375ae5c8c3, committed 2012-09-27
- Comitter:
- NegativeBlack
- Date:
- Thu Sep 27 10:00:27 2012 +0000
- Parent:
- 10:22d49341340c
- Commit message:
- Updated project to latest revision of the NetworkAPI
Changed in this revision
--- a/EthernetInterface.lib Thu Jul 19 11:13:50 2012 +0000 +++ b/EthernetInterface.lib Thu Sep 27 10:00:27 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/EthernetInterface/#0063a5bac04f +http://mbed.org/users/mbed_official/code/EthernetInterface/#a0ee3ae75cfa
--- a/NetworkAPI.lib Thu Jul 19 11:13:50 2012 +0000 +++ b/NetworkAPI.lib Thu Sep 27 10:00:27 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/NegativeBlack/code/NetworkAPI/#9796742904fa +http://mbed.org/users/NegativeBlack/code/NetworkAPI/#cdee0f2b6ff0
--- a/controller.cpp Thu Jul 19 11:13:50 2012 +0000
+++ b/controller.cpp Thu Sep 27 10:00:27 2012 +0000
@@ -56,6 +56,7 @@
{
this->_network.server.close();
this->_network.client.close();
+ return 0;
}
int
@@ -87,15 +88,15 @@
break;
default:
- printf("Received %d bytes.\n\r%s\r", buffer.length(), (char *)buffer.pointer());
+ printf("Received %d bytes.\n\r%s\r", buffer.length(), (char *)buffer.data());
// Parse command
result = this->_parseCommand(buffer);
// Format reply code
buffer.flush();
- buffer.setLength(std::snprintf(
- (char *)buffer.pointer(), buffer.size(),
+ buffer.length(std::snprintf(
+ (char *)buffer.data(), buffer.size(),
"e;%i;", result));
if (buffer.length() < 4) {
@@ -112,7 +113,9 @@
this->_network.client.shutdown();
this->_network.client.close();
}
- }
+ }
+
+ return 0;
}
int
@@ -120,7 +123,7 @@
{
int index = 0;
network::Buffer response(32);
- char *cursor = (char *)buffer.pointer();
+ char *cursor = (char *)buffer.data();
enum Controller::ParseState state = Controller::S_Init;
enum Controller::Command command = Controller::C_None;
@@ -128,14 +131,14 @@
while (cursor != NULL) {
switch (state) {
case Controller::S_Init: {
- if (((*cursor) == 'r') && ((*(cursor + 1)) == ';')) {
+ if (((*cursor) == 'r') && ((*(cursor + 1)) == ':')) {
command = Controller::C_Read;
state = Controller::S_Index;
cursor += 2;
continue;
}
- if (((*cursor) == 'w') && ((*(cursor + 1)) == ';')) {
+ if (((*cursor) == 'w') && ((*(cursor + 1)) == ':')) {
command = Controller::C_Write;
state = Controller::S_Index;
cursor += 2;
@@ -150,7 +153,19 @@
return Controller::E_InvalidFormat;
}
- char *offset = std::strchr(cursor, ';');
+ char *offset;
+ switch (command) {
+ case Controller::C_Read: {
+ offset = std::strchr(cursor, ';');
+ break;
+ }
+
+ case Controller::C_Write: {
+ offset = std::strchr(cursor, ':');
+ break;
+ }
+ }
+
if (offset == NULL) {
return Controller::E_InvalidFormat;
}
@@ -168,9 +183,9 @@
return Controller::E_UnknownIndex;
}
- response.setLength(std::snprintf(
- (char *)response.pointer(), response.size(),
- "r;%d;%d;", index, input->read()));
+ response.length(std::snprintf(
+ (char *)response.data(), response.size(),
+ "r:%d:%d;", index, input->read()));
if (response.length() < 6) {
printf("Warning: failed to format reply.\n\r");
--- a/mbed-rtos.lib Thu Jul 19 11:13:50 2012 +0000 +++ b/mbed-rtos.lib Thu Sep 27 10:00:27 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed-rtos/#01158bb7600c +http://mbed.org/users/mbed_official/code/mbed-rtos/#9654a71f5a90
Roy van Dam
