Added mutex for multiple SPI devices on the same SPI bus

Fork of cc3000_hostdriver_mbedsocket by Martin Kojtal

Revision:
5:245ac5b73132
Parent:
4:15b58c119a0a
Child:
8:4c42ca37ba33
--- a/Socket/Endpoint.cpp	Sat Sep 21 15:01:05 2013 +0000
+++ b/Socket/Endpoint.cpp	Thu Sep 26 19:50:37 2013 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012 mbed.org, MIT License
+/* Copyright (C) 2013 mbed.org, MIT License
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
  * and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -72,13 +72,12 @@
 
 void Endpoint::reset_address(void) {
     _ipAddress[0] = '\0';
-    std::memset(&_remote_host,0, sizeof(sockaddr_in));
+    std::memset(&_remote_host, 0, sizeof(sockaddr_in));
 }
 
 int Endpoint::set_address(const char* host, const int port) {
     reset_address();
 
-    // IP Address
     char address[5];
     char *p_address = address;
 
@@ -89,6 +88,7 @@
     for (int i=0;i<4;i++) {
       address[i] = add[i];
     }
+    std::memset(_ipAddress,0,sizeof(_ipAddress));
 
     if (result != 4) {
         //Resolve DNS address or populate hard-coded IP address
@@ -97,36 +97,22 @@
 
         _remote_host.sin_addr.s_addr = address_integer;
         inet_ntoa_r(_remote_host.sin_addr, _ipAddress, sizeof(_ipAddress));
-        // address[0] = (address_integer >> 24);
-        // address[1] = (address_integer >> 16);
-        // address[2] = (address_integer >> 8);
-        // address[3] = (address_integer >> 0);
-        // sprintf(_ipAddress,"%3u.%3u.%3u.%3u", address[0],address[1],address[2],address[3]);
-        // p_address = _ipAddress;
-        // _remote_host.sin_addr.s_addr = address_integer;
     } else {
         std::memcpy((char*)&_remote_host.sin_addr.s_addr, p_address, 4);
     }
 
+    _remote_host.sin_family = AF_INET;
+    _remote_host.sin_port = htons(port);
+
 #if (CC3000_DEBUG == 1)
     printf("DEBUG: remote host address (string): %s\n",_ipAddress);
     printf("DEBUG: remote host address from s_addr : %d.%d.%d.%d\n",
             int(_remote_host.sin_addr.s_addr & 0xFF),
-            int((_remote_host.sin_addr.s_addr & 0xFF00)>>8),
-            int((_remote_host.sin_addr.s_addr & 0xFF0000)>>16),
-            int((_remote_host.sin_addr.s_addr & 0xFF000000)>>24));
-    //     address[0] = (_remote_host.sin_addr.s_addr >> 24);
-    //     address[1] = (_remote_host.sin_addr.s_addr >> 16);
-    //     address[2] = (_remote_host.sin_addr.s_addr >> 8);
-    //     address[3] = (_remote_host.sin_addr.s_addr >> 0);
-    // printf("DEBUG: remote host address from s_addr: %3u.%3u.%3u.%3u\n",address[0],address[1],address[2],address[3]);
+            int((_remote_host.sin_addr.s_addr & 0xFF00) >> 8),
+            int((_remote_host.sin_addr.s_addr & 0xFF0000) >> 16),
+            int((_remote_host.sin_addr.s_addr & 0xFF000000) >> 24));
+    printf("DEBUG: port: %x \n", _remote_host.sin_port);
 #endif
-    /* store address*/
-    _remote_host.sin_family = AF_INET;
-
-    // Set port
-    _remote_host.sin_port = htons(port);
-
     return 0;
 }