Beispiel #1
0
int main(int argc, char *argv[])
{
	/* enable OCP master port */
	PRUCFG_SYSCFG &= ~SYSCFG_STANDBY_INIT;
	sc_printf("PRU0: Starting Lighting Firmware");

	PT_INIT(&pt_event);
	PT_INIT(&pt_prompt);
	PT_INIT(&pt_tx);

	resource_setup();
	rx_in = rx_out = rx_cnt = 0;
	tx_in = tx_out = tx_cnt = 0;

	for (;;) {
		event_thread(&pt_event);
		tx_thread(&pt_tx);
		prompt_thread(&pt_prompt);
	}
}
Beispiel #2
0
int main(void)
{
    int fd;
#ifdef IPV6
    struct sockaddr_in6 servaddr, cliaddr;
#else /* IPV6 */
    struct sockaddr_in servaddr, cliaddr;
#endif /* IPV6 */
    uint8_t buf[1024];

#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(COAP_DEFAULT_PORT);
#else /* IPV6 */
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port = htons(COAP_DEFAULT_PORT);
#endif /* IPV6 */
    bind(fd,(struct sockaddr *)&servaddr, sizeof(servaddr));

    resource_setup(resources);

    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 YACOAP_DEBUG
        printf("Received: ");
        coap_dump(buf, n, true);
        printf("\n");
#endif

        if ((rc = coap_parse(buf, n, &pkt)) > COAP_ERR)
            printf("Bad packet rc=%d\n", rc);
        else
        {
            size_t buflen = sizeof(buf);
            coap_packet_t rsppkt;
#ifdef YACOAP_DEBUG
            coap_dump_packet(&pkt);
#endif
            coap_handle_request(resources, &pkt, &rsppkt);

            if ((rc = coap_build(&rsppkt, buf, &buflen)) > COAP_ERR)
                printf("coap_build failed rc=%d\n", rc);
            else
            {
#ifdef YACOAP_DEBUG
                printf("Sending: ");
                coap_dump(buf, buflen, true);
                printf("\n");
#endif
#ifdef YACOAP_DEBUG
                coap_dump_packet(&rsppkt);
#endif

                sendto(fd, buf, buflen, 0, (struct sockaddr *)&cliaddr, sizeof(cliaddr));
            }
        }
    }
}