Skip to content

Commit 62a21c5

Browse files
committed
libraries/Wire: Changes in socket.begin function.
Signed-off-by: IFX-Anusha <[email protected]>
1 parent cee0843 commit 62a21c5

File tree

6 files changed

+34
-36
lines changed

6 files changed

+34
-36
lines changed

libraries/WiFi/src/SecSocket.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,19 @@ Socket::Socket():
1818

1919
}
2020

21-
void Socket::begin() {
21+
void Socket::begin(bool is_UDP) {
2222
_last_error = Socket::global_sockets_init();
2323
socket_assert(_last_error);
2424

25-
_last_error = cy_socket_create(CY_SOCKET_DOMAIN_AF_INET, CY_SOCKET_TYPE_STREAM,
26-
CY_SOCKET_IPPROTO_TCP, &socket);
27-
socket_assert(_last_error);
28-
25+
if (is_UDP) {
26+
_last_error = cy_socket_create(CY_SOCKET_DOMAIN_AF_INET, CY_SOCKET_TYPE_DGRAM,
27+
CY_SOCKET_IPPROTO_UDP, &socket);
28+
socket_assert(_last_error);
29+
} else {
30+
_last_error = cy_socket_create(CY_SOCKET_DOMAIN_AF_INET, CY_SOCKET_TYPE_STREAM,
31+
CY_SOCKET_IPPROTO_TCP, &socket);
32+
socket_assert(_last_error);
33+
}
2934
_status = SOCKET_STATUS_CREATED;
3035
}
3136

libraries/WiFi/src/SecSocket.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class Socket {
2222

2323
Socket();
2424

25-
void begin();
25+
void begin(bool is_UDP);
2626
void end();
2727

2828
void setTimeout(uint32_t timeout);

libraries/WiFi/src/WiFiClient.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ WiFiClient::WiFiClient() :
1414
}
1515

1616
int WiFiClient::connect(IPAddress ip, uint16_t port) {
17-
socket->begin();
17+
socket->begin(false); // false = TCP
1818

1919
socket->setReceiveOptCallback(receiveCallback, this);
2020
socket->setDisconnectOptCallback(disconnectionCallback, this);
@@ -23,7 +23,7 @@ int WiFiClient::connect(IPAddress ip, uint16_t port) {
2323
}
2424

2525
int WiFiClient::connect(const char *host, uint16_t port) {
26-
socket->begin();
26+
socket->begin(false); // false = TCP
2727

2828
socket->setReceiveOptCallback(receiveCallback, this);
2929
socket->setDisconnectOptCallback(disconnectionCallback, this);

libraries/WiFi/src/WiFiServer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ WiFiServer::WiFiServer() {
99
}
1010

1111
void WiFiServer::begin(uint16_t port) {
12-
socket.begin();
12+
socket.begin(false); // false = TCP
1313

1414
socket.setTimeout(SERVER_RECV_TIMEOUT_MS);
1515
socket.setConnectOptCallback(connectionCallback, this);

libraries/WiFi/src/WiFiUdp.cpp

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "WiFiUdp.h"
2+
#include <Arduino.h>
23

34
#define udp_assert(cy_ret) if (cy_ret != CY_RSLT_SUCCESS) { \
45
_status = SOCKET_STATUS_ERROR; \
@@ -12,19 +13,26 @@
1213
WiFiUDP::WiFiUDP() :
1314
client_handle(nullptr),
1415
_status(SOCKET_STATUS_UNINITED),
15-
_last_error(CY_RSLT_SUCCESS) {
16+
_last_error(CY_RSLT_SUCCESS),
17+
remote_ip(0, 0, 0, 0),
18+
_port(0) {
1619
}
1720

1821
uint8_t WiFiUDP::begin(uint16_t port) {
19-
_last_error = WiFiUDP::global_sockets_init();
20-
udp_assert_raise(_last_error);
22+
_port = port;
2123

22-
/* Create a UDP socket */
23-
_last_error = cy_socket_create(CY_SOCKET_DOMAIN_AF_INET, CY_SOCKET_TYPE_DGRAM, CY_SOCKET_IPPROTO_UDP, &client_handle);
24-
udp_assert_raise(_last_error);
24+
// Initialize the socket for UDP
25+
socket.begin(true); // true = UDP
26+
if (socket.status() != SOCKET_STATUS_CREATED) {
27+
return 0; // Return 0 if socket creation fails
28+
}
29+
// Bind the socket to the specified port
30+
socket.bind(port);
31+
if (socket.status() != SOCKET_STATUS_BOUND) {
32+
return 0; // Return 0 if binding fail
2533

26-
_status = SOCKET_STATUS_CREATED;
27-
return 1;
34+
}
35+
return socket.status(); // Return the socket status
2836
}
2937

3038

@@ -87,18 +95,3 @@ IPAddress WiFiUDP::remoteIP() {
8795
uint16_t WiFiUDP::remotePort() {
8896
return 0;
8997
}
90-
91-
bool WiFiUDP::global_socket_initialized = false;
92-
uint32_t WiFiUDP::global_socket_count = 0;
93-
94-
cy_rslt_t WiFiUDP::global_sockets_init() {
95-
if (!WiFiUDP::global_socket_initialized) {
96-
cy_rslt_t ret = cy_socket_init();
97-
if (ret != CY_RSLT_SUCCESS) {
98-
return ret;
99-
}
100-
WiFiUDP::global_socket_initialized = true;
101-
}
102-
WiFiUDP::global_socket_count++;
103-
return CY_RSLT_SUCCESS;
104-
}

libraries/WiFi/src/WiFiUdp.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ class WiFiUDP: public arduino::UDP {
3636

3737

3838
private:
39+
Socket socket;
40+
3941
cy_socket_t client_handle;
4042
socket_status_t _status;
4143
cy_rslt_t _last_error;
44+
IPAddress remote_ip;
45+
uint16_t _port;
4246

43-
static bool global_socket_initialized;
44-
static uint32_t global_socket_count;
45-
cy_rslt_t global_sockets_init();
46-
cy_rslt_t global_sockets_deinit();
4747
};
4848

4949
#endif /* WIFI_UDP_H */

0 commit comments

Comments
 (0)