You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
332 lines
8.5 KiB
332 lines
8.5 KiB
From 335f83548f4a4a13b556800bcc354d77db8c3434 Mon Sep 17 00:00:00 2001 |
|
From: Patrick Grosse <patrick.grosse@uni-muenster.de> |
|
Date: Sat, 25 Mar 2017 10:32:27 +0100 |
|
Subject: [PATCH 1/6] Remove unneeded *.c files |
|
|
|
--- |
|
endpoints.c | 113 ---------------------------------------------------------- |
|
main-posix.c | 85 ------------------------------------------- |
|
microcoap.ino | 99 -------------------------------------------------- |
|
3 files changed, 297 deletions(-) |
|
delete mode 100644 endpoints.c |
|
delete mode 100644 main-posix.c |
|
delete mode 100644 microcoap.ino |
|
|
|
diff --git a/endpoints.c b/endpoints.c |
|
deleted file mode 100644 |
|
index ccc961b..0000000 |
|
--- a/endpoints.c |
|
+++ /dev/null |
|
@@ -1,113 +0,0 @@ |
|
-#include <stdbool.h> |
|
-#include <string.h> |
|
-#include "coap.h" |
|
- |
|
-static char light = '0'; |
|
- |
|
-const uint16_t rsplen = 1500; |
|
-static char rsp[1500] = ""; |
|
-void build_rsp(void); |
|
- |
|
-#ifdef ARDUINO |
|
-#include "Arduino.h" |
|
-static int led = 6; |
|
-void endpoint_setup(void) |
|
-{ |
|
- pinMode(led, OUTPUT); |
|
- build_rsp(); |
|
-} |
|
-#else |
|
-#include <stdio.h> |
|
-void endpoint_setup(void) |
|
-{ |
|
- build_rsp(); |
|
-} |
|
-#endif |
|
- |
|
-static const coap_endpoint_path_t path_well_known_core = {2, {".well-known", "core"}}; |
|
-static int handle_get_well_known_core(coap_rw_buffer_t *scratch, const coap_packet_t *inpkt, coap_packet_t *outpkt, uint8_t id_hi, uint8_t id_lo) |
|
-{ |
|
- return coap_make_response(scratch, outpkt, (const uint8_t *)rsp, strlen(rsp), id_hi, id_lo, &inpkt->tok, COAP_RSPCODE_CONTENT, COAP_CONTENTTYPE_APPLICATION_LINKFORMAT); |
|
-} |
|
- |
|
-static const coap_endpoint_path_t path_light = {1, {"light"}}; |
|
-static int handle_get_light(coap_rw_buffer_t *scratch, const coap_packet_t *inpkt, coap_packet_t *outpkt, uint8_t id_hi, uint8_t id_lo) |
|
-{ |
|
- return coap_make_response(scratch, outpkt, (const uint8_t *)&light, 1, id_hi, id_lo, &inpkt->tok, COAP_RSPCODE_CONTENT, COAP_CONTENTTYPE_TEXT_PLAIN); |
|
-} |
|
- |
|
-static int handle_put_light(coap_rw_buffer_t *scratch, const coap_packet_t *inpkt, coap_packet_t *outpkt, uint8_t id_hi, uint8_t id_lo) |
|
-{ |
|
- if (inpkt->payload.len == 0) |
|
- return coap_make_response(scratch, outpkt, NULL, 0, id_hi, id_lo, &inpkt->tok, COAP_RSPCODE_BAD_REQUEST, COAP_CONTENTTYPE_TEXT_PLAIN); |
|
- if (inpkt->payload.p[0] == '1') |
|
- { |
|
- light = '1'; |
|
-#ifdef ARDUINO |
|
- digitalWrite(led, HIGH); |
|
-#else |
|
- printf("ON\n"); |
|
-#endif |
|
- return coap_make_response(scratch, outpkt, (const uint8_t *)&light, 1, id_hi, id_lo, &inpkt->tok, COAP_RSPCODE_CHANGED, COAP_CONTENTTYPE_TEXT_PLAIN); |
|
- } |
|
- else |
|
- { |
|
- light = '0'; |
|
-#ifdef ARDUINO |
|
- digitalWrite(led, LOW); |
|
-#else |
|
- printf("OFF\n"); |
|
-#endif |
|
- return coap_make_response(scratch, outpkt, (const uint8_t *)&light, 1, id_hi, id_lo, &inpkt->tok, COAP_RSPCODE_CHANGED, COAP_CONTENTTYPE_TEXT_PLAIN); |
|
- } |
|
-} |
|
- |
|
-const coap_endpoint_t endpoints[] = |
|
-{ |
|
- {COAP_METHOD_GET, handle_get_well_known_core, &path_well_known_core, "ct=40"}, |
|
- {COAP_METHOD_GET, handle_get_light, &path_light, "ct=0"}, |
|
- {COAP_METHOD_PUT, handle_put_light, &path_light, NULL}, |
|
- {(coap_method_t)0, NULL, NULL, NULL} |
|
-}; |
|
- |
|
-void build_rsp(void) |
|
-{ |
|
- uint16_t len = rsplen; |
|
- const coap_endpoint_t *ep = endpoints; |
|
- int i; |
|
- |
|
- len--; // Null-terminated string |
|
- |
|
- while(NULL != ep->handler) |
|
- { |
|
- if (NULL == ep->core_attr) { |
|
- ep++; |
|
- continue; |
|
- } |
|
- |
|
- if (0 < strlen(rsp)) { |
|
- strncat(rsp, ",", len); |
|
- len--; |
|
- } |
|
- |
|
- strncat(rsp, "<", len); |
|
- len--; |
|
- |
|
- for (i = 0; i < ep->path->count; i++) { |
|
- strncat(rsp, "/", len); |
|
- len--; |
|
- |
|
- strncat(rsp, ep->path->elems[i], len); |
|
- len -= strlen(ep->path->elems[i]); |
|
- } |
|
- |
|
- strncat(rsp, ">;", len); |
|
- len -= 2; |
|
- |
|
- strncat(rsp, ep->core_attr, len); |
|
- len -= strlen(ep->core_attr); |
|
- |
|
- ep++; |
|
- } |
|
-} |
|
- |
|
diff --git a/main-posix.c b/main-posix.c |
|
deleted file mode 100644 |
|
index 3711b02..0000000 |
|
--- a/main-posix.c |
|
+++ /dev/null |
|
@@ -1,85 +0,0 @@ |
|
-#include <sys/socket.h> |
|
-#include <netinet/in.h> |
|
-#include <stdio.h> |
|
-#include <stdbool.h> |
|
-#include <strings.h> |
|
- |
|
-#include "coap.h" |
|
- |
|
-#define PORT 5683 |
|
- |
|
-int main(int argc, char **argv) |
|
-{ |
|
- int fd; |
|
-#ifdef IPV6 |
|
- struct sockaddr_in6 servaddr, cliaddr; |
|
-#else /* IPV6 */ |
|
- struct sockaddr_in servaddr, cliaddr; |
|
-#endif /* IPV6 */ |
|
- uint8_t buf[4096]; |
|
- uint8_t scratch_raw[4096]; |
|
- coap_rw_buffer_t scratch_buf = {scratch_raw, sizeof(scratch_raw)}; |
|
- |
|
-#ifdef IPV6 |
|
- fd = socket(AF_INET6,SOCK_DGRAM,0); |
|
-#else /* IPV6 */ |
|
- fd = socket(AF_INET,SOCK_DGRAM,0); |
|
-#endif /* IPV6 */ |
|
- |
|
- bzero(&servaddr,sizeof(servaddr)); |
|
-#ifdef IPV6 |
|
- servaddr.sin6_family = AF_INET6; |
|
- servaddr.sin6_addr = in6addr_any; |
|
- servaddr.sin6_port = htons(PORT); |
|
-#else /* IPV6 */ |
|
- servaddr.sin_family = AF_INET; |
|
- servaddr.sin_addr.s_addr = htonl(INADDR_ANY); |
|
- servaddr.sin_port = htons(PORT); |
|
-#endif /* IPV6 */ |
|
- bind(fd,(struct sockaddr *)&servaddr, sizeof(servaddr)); |
|
- |
|
- endpoint_setup(); |
|
- |
|
- while(1) |
|
- { |
|
- int n, rc; |
|
- socklen_t len = sizeof(cliaddr); |
|
- coap_packet_t pkt; |
|
- |
|
- n = recvfrom(fd, buf, sizeof(buf), 0, (struct sockaddr *)&cliaddr, &len); |
|
-#ifdef DEBUG |
|
- printf("Received: "); |
|
- coap_dump(buf, n, true); |
|
- printf("\n"); |
|
-#endif |
|
- |
|
- if (0 != (rc = coap_parse(&pkt, buf, n))) |
|
- printf("Bad packet rc=%d\n", rc); |
|
- else |
|
- { |
|
- size_t rsplen = sizeof(buf); |
|
- coap_packet_t rsppkt; |
|
-#ifdef DEBUG |
|
- coap_dumpPacket(&pkt); |
|
-#endif |
|
- coap_handle_req(&scratch_buf, &pkt, &rsppkt); |
|
- |
|
- if (0 != (rc = coap_build(buf, &rsplen, &rsppkt))) |
|
- printf("coap_build failed rc=%d\n", rc); |
|
- else |
|
- { |
|
-#ifdef DEBUG |
|
- printf("Sending: "); |
|
- coap_dump(buf, rsplen, true); |
|
- printf("\n"); |
|
-#endif |
|
-#ifdef DEBUG |
|
- coap_dumpPacket(&rsppkt); |
|
-#endif |
|
- |
|
- sendto(fd, buf, rsplen, 0, (struct sockaddr *)&cliaddr, sizeof(cliaddr)); |
|
- } |
|
- } |
|
- } |
|
-} |
|
- |
|
diff --git a/microcoap.ino b/microcoap.ino |
|
deleted file mode 100644 |
|
index 148b6ce..0000000 |
|
--- a/microcoap.ino |
|
+++ /dev/null |
|
@@ -1,99 +0,0 @@ |
|
-/* |
|
-* WARNING - UDP_TX_PACKET_MAX_SIZE is hardcoded by Arduino to 24 bytes |
|
-* This limits the size of possible outbound UDP packets |
|
-*/ |
|
- |
|
-#include <SPI.h> |
|
-#include <Ethernet.h> |
|
-#include <stdint.h> |
|
-#include <EthernetUdp.h> |
|
-#include "coap.h" |
|
- |
|
-#define PORT 5683 |
|
-static uint8_t mac[] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02}; |
|
- |
|
-EthernetClient client; |
|
-EthernetUDP udp; |
|
-uint8_t packetbuf[256]; |
|
-static uint8_t scratch_raw[32]; |
|
-static coap_rw_buffer_t scratch_buf = {scratch_raw, sizeof(scratch_raw)}; |
|
- |
|
-void setup() |
|
-{ |
|
- int i; |
|
- Serial.begin(9600); |
|
- while (!Serial) |
|
- { |
|
- ; // wait for serial port to connect. Needed for Leonardo only |
|
- } |
|
- |
|
- // start the Ethernet connection: |
|
- if (Ethernet.begin(mac) == 0) |
|
- { |
|
- Serial.println("Failed to configure Ethernet using DHCP"); |
|
- while(1); |
|
- } |
|
- Serial.print("My IP address: "); |
|
- for (i=0;i<4;i++) |
|
- { |
|
- Serial.print(Ethernet.localIP()[i], DEC); |
|
- Serial.print("."); |
|
- } |
|
- Serial.println(); |
|
- udp.begin(PORT); |
|
- |
|
- coap_setup(); |
|
- endpoint_setup(); |
|
-} |
|
- |
|
-void udp_send(const uint8_t *buf, int buflen) |
|
-{ |
|
- udp.beginPacket(udp.remoteIP(), udp.remotePort()); |
|
- while(buflen--) |
|
- udp.write(*buf++); |
|
- udp.endPacket(); |
|
-} |
|
- |
|
-void loop() |
|
-{ |
|
- int sz; |
|
- int rc; |
|
- coap_packet_t pkt; |
|
- int i; |
|
- |
|
- if ((sz = udp.parsePacket()) > 0) |
|
- { |
|
- udp.read(packetbuf, sizeof(packetbuf)); |
|
- |
|
- for (i=0;i<sz;i++) |
|
- { |
|
- Serial.print(packetbuf[i], HEX); |
|
- Serial.print(" "); |
|
- } |
|
- Serial.println(""); |
|
- |
|
- if (0 != (rc = coap_parse(&pkt, packetbuf, sz))) |
|
- { |
|
- Serial.print("Bad packet rc="); |
|
- Serial.println(rc, DEC); |
|
- } |
|
- else |
|
- { |
|
- size_t rsplen = sizeof(packetbuf); |
|
- coap_packet_t rsppkt; |
|
- coap_handle_req(&scratch_buf, &pkt, &rsppkt); |
|
- |
|
- memset(packetbuf, 0, UDP_TX_PACKET_MAX_SIZE); |
|
- if (0 != (rc = coap_build(packetbuf, &rsplen, &rsppkt))) |
|
- { |
|
- Serial.print("coap_build failed rc="); |
|
- Serial.println(rc, DEC); |
|
- } |
|
- else |
|
- { |
|
- udp_send(packetbuf, rsplen); |
|
- } |
|
- } |
|
- } |
|
-} |
|
- |
|
-- |
|
2.7.4 |
|
|
|
|