Indentation fixes

- Fix dir-locals so emacs won't inject occasional tabs to case statements.
- Fix stray tab indentation in example programs. (Thx @pfalcon for pointing this out)
This commit is contained in:
Angus Gratton 2015-06-09 09:00:32 +10:00
parent a59b1565e4
commit c09167715e
10 changed files with 234 additions and 226 deletions

View file

@ -1,5 +1,9 @@
((c-mode (
(c-file-style . "BSD") (nil
(indent-tabs-mode . nil)
)
(c-mode
(c-file-style . "bsd")
(c-basic-offset . 4) (c-basic-offset . 4)
) )
) )

View file

@ -96,6 +96,12 @@ For code submissions based on reverse engineered binary functionality, please ei
The best way to write suitable code is to first add documentation somewhere like the [esp8266 wiki](https://github.com/esp8266/esp8266-wiki/) describing factual information gained from reverse engineering - such as register addresses, bit masks, orders of register writes, etc. Then write new functions referring to that documentation as reference material. The best way to write suitable code is to first add documentation somewhere like the [esp8266 wiki](https://github.com/esp8266/esp8266-wiki/) describing factual information gained from reverse engineering - such as register addresses, bit masks, orders of register writes, etc. Then write new functions referring to that documentation as reference material.
## Coding Style
For new contributions, please use BSD style and indent using 4 spaces. If you're an emacs user then there is a .dir-locals.el file in the root which configures cc-mode.
Upstream code is left with the indentation and style of the upstream project.
## Sponsors ## Sponsors
Work on esp-open-rtos is sponsored by [SuperHouse Automation](http://superhouse.tv/). Work on esp-open-rtos has been sponsored by [SuperHouse Automation](http://superhouse.tv/).

View file

@ -14,23 +14,25 @@
you want to use interrupt with. This is simple but it may not you want to use interrupt with. This is simple but it may not
be enough in all cases. be enough in all cases.
void gpio01_interrupt_handler(void) { void gpio01_interrupt_handler(void) {
// Do something when GPIO 01 changes
}
} void gpio12_interrupt_handler(void) {
// Do something when GPIO 12 changes
}
OR
- Implement a single function named gpio_interrupt_handler(). This - Implement a single function named gpio_interrupt_handler(). This
will need to manually check GPIO_STATUS_REG and clear any status will need to manually check GPIO_STATUS_REG and clear any status
bits after handling interrupts. This gives you full control, but bits after handling interrupts. This gives you full control, but
you can't combine it with the first approach. you can't combine it with the first approach.
void gpio_interrupt_handler(void) {
} Part of esp-open-rtos
Copyright (C) 2015 Superhouse Automation Pty Ltd
BSD Licensed as described in the file LICENSE
* Part of esp-open-rtos
* Copyright (C) 2015 Superhouse Automation Pty Ltd
* BSD Licensed as described in the file LICENSE
*/ */
#include "esp8266.h" #include "esp8266.h"
@ -70,9 +72,9 @@ void __attribute__((weak)) IRAM gpio_interrupt_handler(void)
uint8_t gpio_idx; uint8_t gpio_idx;
while((gpio_idx = __builtin_ffs(status_reg))) while((gpio_idx = __builtin_ffs(status_reg)))
{ {
gpio_idx--; gpio_idx--;
status_reg &= ~BIT(gpio_idx); status_reg &= ~BIT(gpio_idx);
if(GPIO_CTRL_REG(gpio_idx) & GPIO_INT_MASK) if(GPIO_CTRL_REG(gpio_idx) & GPIO_INT_MASK)
gpio_interrupt_handlers[gpio_idx](); gpio_interrupt_handlers[gpio_idx]();
} }
} }

View file

@ -30,27 +30,27 @@ INLINED void gpio_enable(const uint8_t gpio_num, const gpio_direction_t directio
switch(direction) { switch(direction) {
case GPIO_INPUT: case GPIO_INPUT:
iomux_flags = 0; iomux_flags = 0;
ctrl_val = GPIO_SOURCE_GPIO; ctrl_val = GPIO_SOURCE_GPIO;
break; break;
case GPIO_OUTPUT: case GPIO_OUTPUT:
iomux_flags = IOMUX_OE; iomux_flags = IOMUX_OE;
ctrl_val = GPIO_DRIVE_PUSH_PULL|GPIO_SOURCE_GPIO; ctrl_val = GPIO_DRIVE_PUSH_PULL|GPIO_SOURCE_GPIO;
break; break;
case GPIO_OUT_OPEN_DRAIN: case GPIO_OUT_OPEN_DRAIN:
iomux_flags = IOMUX_OE; iomux_flags = IOMUX_OE;
ctrl_val = GPIO_DRIVE_OPEN_DRAIN|GPIO_SOURCE_GPIO; ctrl_val = GPIO_DRIVE_OPEN_DRAIN|GPIO_SOURCE_GPIO;
break; break;
case GPIO_INPUT_PULLUP: case GPIO_INPUT_PULLUP:
iomux_flags = IOMUX_PU; iomux_flags = IOMUX_PU;
ctrl_val = GPIO_SOURCE_GPIO; ctrl_val = GPIO_SOURCE_GPIO;
} }
iomux_set_gpio_function(gpio_num, iomux_flags); iomux_set_gpio_function(gpio_num, iomux_flags);
GPIO_CTRL_REG(gpio_num) = (GPIO_CTRL_REG(gpio_num)&GPIO_INT_MASK) | ctrl_val; GPIO_CTRL_REG(gpio_num) = (GPIO_CTRL_REG(gpio_num)&GPIO_INT_MASK) | ctrl_val;
if(direction == GPIO_OUTPUT) if(direction == GPIO_OUTPUT)
GPIO_DIR_SET = BIT(gpio_num); GPIO_DIR_SET = BIT(gpio_num);
else else
GPIO_DIR_CLEAR = BIT(gpio_num); GPIO_DIR_CLEAR = BIT(gpio_num);
} }
/* Disable GPIO on the specified pin, and set it Hi-Z. /* Disable GPIO on the specified pin, and set it Hi-Z.
@ -71,9 +71,9 @@ INLINED void gpio_disable(const uint8_t gpio_num)
INLINED void gpio_write(const uint8_t gpio_num, const uint32_t set) INLINED void gpio_write(const uint8_t gpio_num, const uint32_t set)
{ {
if(set) if(set)
GPIO_OUT_SET = BIT(gpio_num); GPIO_OUT_SET = BIT(gpio_num);
else else
GPIO_OUT_CLEAR = BIT(gpio_num); GPIO_OUT_CLEAR = BIT(gpio_num);
} }
/* Toggle output of a pin /* Toggle output of a pin
@ -89,9 +89,9 @@ INLINED void gpio_toggle(const uint8_t gpio_num)
task's pins, without needing to disable/enable interrupts. task's pins, without needing to disable/enable interrupts.
*/ */
if(GPIO_OUT_REG & BIT(gpio_num)) if(GPIO_OUT_REG & BIT(gpio_num))
GPIO_OUT_CLEAR = BIT(gpio_num); GPIO_OUT_CLEAR = BIT(gpio_num);
else else
GPIO_OUT_SET = BIT(gpio_num); GPIO_OUT_SET = BIT(gpio_num);
} }
/* Read input value of a GPIO pin. /* Read input value of a GPIO pin.
@ -120,10 +120,10 @@ extern void gpio_interrupt_handler(void);
INLINED void gpio_set_interrupt(const uint8_t gpio_num, const gpio_interrupt_t int_type) INLINED void gpio_set_interrupt(const uint8_t gpio_num, const gpio_interrupt_t int_type)
{ {
GPIO_CTRL_REG(gpio_num) = (GPIO_CTRL_REG(gpio_num)&~GPIO_INT_MASK) GPIO_CTRL_REG(gpio_num) = (GPIO_CTRL_REG(gpio_num)&~GPIO_INT_MASK)
| (int_type & GPIO_INT_MASK); | (int_type & GPIO_INT_MASK);
if(int_type != INT_NONE) { if(int_type != INT_NONE) {
_xt_isr_attach(INUM_GPIO, gpio_interrupt_handler); _xt_isr_attach(INUM_GPIO, gpio_interrupt_handler);
_xt_isr_unmask(1<<INUM_GPIO); _xt_isr_unmask(1<<INUM_GPIO);
} }
} }

View file

@ -6,7 +6,7 @@
* Part of esp-open-rtos * Part of esp-open-rtos
* Copyright (C) 2015 Superhouse Automation Pty Ltd * Copyright (C) 2015 Superhouse Automation Pty Ltd
* BSD Licensed as described in the file LICENSE * BSD Licensed as described in the file LICENSE
*/ */
/* Mapping from register index to GPIO and from GPIO index to register /* Mapping from register index to GPIO and from GPIO index to register
number. DO NOT USE THESE IN YOUR CODE, call gpio_to_iomux(xxx) or number. DO NOT USE THESE IN YOUR CODE, call gpio_to_iomux(xxx) or
@ -26,22 +26,21 @@ extern const IROM uint32_t IOMUX_TO_GPIO_MAP[];
INLINED uint8_t gpio_to_iomux(const uint8_t gpio_number) INLINED uint8_t gpio_to_iomux(const uint8_t gpio_number)
{ {
if(__builtin_constant_p(gpio_number)) { if(__builtin_constant_p(gpio_number)) {
static const uint8_t _regs[] = _GPIO_TO_IOMUX; static const uint8_t _regs[] = _GPIO_TO_IOMUX;
return _regs[gpio_number]; return _regs[gpio_number];
} else { } else {
return GPIO_TO_IOMUX_MAP[gpio_number]; return GPIO_TO_IOMUX_MAP[gpio_number];
} }
} }
INLINED uint8_t iomux_to_gpio(const uint8_t iomux_number) INLINED uint8_t iomux_to_gpio(const uint8_t iomux_number)
{ {
if(__builtin_constant_p(iomux_number)) { if(__builtin_constant_p(iomux_number)) {
static const uint8_t _regs[] = _IOMUX_TO_GPIO; static const uint8_t _regs[] = _IOMUX_TO_GPIO;
return _regs[iomux_number]; return _regs[iomux_number];
} else { } else {
return IOMUX_TO_GPIO_MAP[iomux_number]; return IOMUX_TO_GPIO_MAP[iomux_number];
} }
} }
#endif #endif

View file

@ -20,10 +20,10 @@ void blinkenTask(void *pvParameters)
{ {
gpio_enable(gpio, GPIO_OUTPUT); gpio_enable(gpio, GPIO_OUTPUT);
while(1) { while(1) {
gpio_write(gpio, 1); gpio_write(gpio, 1);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
gpio_write(gpio, 0); gpio_write(gpio, 0);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
} }
} }
@ -44,10 +44,10 @@ void blinkenRegisterTask(void *pvParameters)
GPIO_DIR_SET = BIT(gpio); GPIO_DIR_SET = BIT(gpio);
IOMUX_SET(GP14,GPIO,IOMUX_OE); /* change this line if you change 'gpio' */ IOMUX_SET(GP14,GPIO,IOMUX_OE); /* change this line if you change 'gpio' */
while(1) { while(1) {
GPIO_OUT_SET = BIT(gpio); GPIO_OUT_SET = BIT(gpio);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
GPIO_OUT_CLEAR = BIT(gpio); GPIO_OUT_CLEAR = BIT(gpio);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
} }
} }

View file

@ -30,12 +30,12 @@ void buttonPollTask(void *pvParameters)
{ {
printf("Polling for button press on gpio %d...\r\n", gpio); printf("Polling for button press on gpio %d...\r\n", gpio);
while(1) { while(1) {
while(gpio_read(gpio) != active) while(gpio_read(gpio) != active)
{ {
taskYIELD(); taskYIELD();
} }
printf("Polled for button press at %dms\r\n", xTaskGetTickCount()*portTICK_RATE_MS); printf("Polled for button press at %dms\r\n", xTaskGetTickCount()*portTICK_RATE_MS);
vTaskDelay(200 / portTICK_RATE_MS); vTaskDelay(200 / portTICK_RATE_MS);
} }
} }
@ -55,13 +55,13 @@ void buttonIntTask(void *pvParameters)
uint32_t last = 0; uint32_t last = 0;
while(1) { while(1) {
uint32_t button_ts; uint32_t button_ts;
xQueueReceive(*tsqueue, &button_ts, portMAX_DELAY); xQueueReceive(*tsqueue, &button_ts, portMAX_DELAY);
button_ts *= portTICK_RATE_MS; button_ts *= portTICK_RATE_MS;
if(last < button_ts-200) { if(last < button_ts-200) {
printf("Button interrupt fired at %dms\r\n", button_ts); printf("Button interrupt fired at %dms\r\n", button_ts);
last = button_ts; last = button_ts;
} }
} }
} }

View file

@ -30,85 +30,85 @@ void http_get_task(void *pvParameters)
printf("HTTP get task starting...\r\n"); printf("HTTP get task starting...\r\n");
while(1) { while(1) {
const struct addrinfo hints = { const struct addrinfo hints = {
.ai_family = AF_INET, .ai_family = AF_INET,
.ai_socktype = SOCK_STREAM, .ai_socktype = SOCK_STREAM,
}; };
struct addrinfo *res; struct addrinfo *res;
printf("Running DNS lookup for %s...\r\n", WEB_SERVER); printf("Running DNS lookup for %s...\r\n", WEB_SERVER);
int err = getaddrinfo(WEB_SERVER, "80", &hints, &res); int err = getaddrinfo(WEB_SERVER, "80", &hints, &res);
if(err != 0 || res == NULL) { if(err != 0 || res == NULL) {
printf("DNS lookup failed err=%d res=%p\r\n", err, res); printf("DNS lookup failed err=%d res=%p\r\n", err, res);
if(res) if(res)
freeaddrinfo(res); freeaddrinfo(res);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
/* Note: inet_ntoa is non-reentrant, look at ipaddr_ntoa_r for "real" code */ /* Note: inet_ntoa is non-reentrant, look at ipaddr_ntoa_r for "real" code */
struct in_addr *addr = &((struct sockaddr_in *)res->ai_addr)->sin_addr; struct in_addr *addr = &((struct sockaddr_in *)res->ai_addr)->sin_addr;
printf("DNS lookup succeeded. IP=%s\r\n", inet_ntoa(*addr)); printf("DNS lookup succeeded. IP=%s\r\n", inet_ntoa(*addr));
int s = socket(res->ai_family, res->ai_socktype, 0); int s = socket(res->ai_family, res->ai_socktype, 0);
if(s < 0) { if(s < 0) {
printf("... Failed to allocate socket.\r\n"); printf("... Failed to allocate socket.\r\n");
freeaddrinfo(res); freeaddrinfo(res);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
printf("... allocated socket\r\n"); printf("... allocated socket\r\n");
if(connect(s, res->ai_addr, res->ai_addrlen) != 0) { if(connect(s, res->ai_addr, res->ai_addrlen) != 0) {
close(s); close(s);
freeaddrinfo(res); freeaddrinfo(res);
printf("... socket connect failed.\r\n"); printf("... socket connect failed.\r\n");
vTaskDelay(4000 / portTICK_RATE_MS); vTaskDelay(4000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
printf("... connected\r\n"); printf("... connected\r\n");
freeaddrinfo(res); freeaddrinfo(res);
const char *req = const char *req =
"GET "WEB_URL"\r\n" "GET "WEB_URL"\r\n"
"User-Agent: esp-open-rtos/0.1 esp8266\r\n" "User-Agent: esp-open-rtos/0.1 esp8266\r\n"
"\r\n"; "\r\n";
if (write(s, req, strlen(req) + 1) < 0) { if (write(s, req, strlen(req) + 1) < 0) {
printf("... socket send failed\r\n"); printf("... socket send failed\r\n");
close(s); close(s);
vTaskDelay(4000 / portTICK_RATE_MS); vTaskDelay(4000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
printf("... socket send success\r\n"); printf("... socket send success\r\n");
static char recv_buf[128]; static char recv_buf[128];
int r; int r;
do { do {
bzero(recv_buf, 128); bzero(recv_buf, 128);
r = read(s, recv_buf, 127); r = read(s, recv_buf, 127);
if(r > 0) { if(r > 0) {
printf("%s", recv_buf); printf("%s", recv_buf);
} }
} while(r > 0); } while(r > 0);
printf("... done reading from socket. Last read return=%d errno=%d\r\n", r, errno); printf("... done reading from socket. Last read return=%d errno=%d\r\n", r, errno);
if(r != 0) if(r != 0)
failures++; failures++;
else else
successes++; successes++;
close(s); close(s);
printf("successes = %d failures = %d\r\n", successes, failures); printf("successes = %d failures = %d\r\n", successes, failures);
for(int countdown = 10; countdown >= 0; countdown--) { for(int countdown = 10; countdown >= 0; countdown--) {
printf("%d... ", countdown); printf("%d... ", countdown);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
} }
printf("\r\nStarting again!\r\n"); printf("\r\nStarting again!\r\n");
} }
} }
@ -118,8 +118,8 @@ void user_init(void)
printf("SDK version:%s\n", sdk_system_get_sdk_version()); printf("SDK version:%s\n", sdk_system_get_sdk_version());
struct sdk_station_config config = { struct sdk_station_config config = {
.ssid = WIFI_SSID, .ssid = WIFI_SSID,
.password = WIFI_PASS, .password = WIFI_PASS,
}; };
/* required to call wifi_set_opmode before station_set_config */ /* required to call wifi_set_opmode before station_set_config */

View file

@ -43,70 +43,70 @@ void http_get_task(void *pvParameters)
if ((ssl_ctx = ssl_ctx_new(options, SSL_DEFAULT_CLNT_SESS)) == NULL) if ((ssl_ctx = ssl_ctx_new(options, SSL_DEFAULT_CLNT_SESS)) == NULL)
{ {
printf("Error: SSL Client context is invalid\n"); printf("Error: SSL Client context is invalid\n");
while(1) {} while(1) {}
} }
printf("Got SSL context."); printf("Got SSL context.");
while(1) { while(1) {
const struct addrinfo hints = { const struct addrinfo hints = {
.ai_family = AF_INET, .ai_family = AF_INET,
.ai_socktype = SOCK_STREAM, .ai_socktype = SOCK_STREAM,
}; };
struct addrinfo *res; struct addrinfo *res;
printf("top of loop, free heap = %u\r\n", xPortGetFreeHeapSize()); printf("top of loop, free heap = %u\r\n", xPortGetFreeHeapSize());
printf("Running DNS lookup for %s...\r\n", WEB_SERVER); printf("Running DNS lookup for %s...\r\n", WEB_SERVER);
int err = getaddrinfo(WEB_SERVER, WEB_PORT, &hints, &res); int err = getaddrinfo(WEB_SERVER, WEB_PORT, &hints, &res);
if(err != 0 || res == NULL) { if(err != 0 || res == NULL) {
printf("DNS lookup failed err=%d res=%p\r\n", err, res); printf("DNS lookup failed err=%d res=%p\r\n", err, res);
if(res) if(res)
freeaddrinfo(res); freeaddrinfo(res);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
/* Note: inet_ntoa is non-reentrant, look at ipaddr_ntoa_r for "real" code */ /* Note: inet_ntoa is non-reentrant, look at ipaddr_ntoa_r for "real" code */
struct in_addr *addr = &((struct sockaddr_in *)res->ai_addr)->sin_addr; struct in_addr *addr = &((struct sockaddr_in *)res->ai_addr)->sin_addr;
printf("DNS lookup succeeded. IP=%s\r\n", inet_ntoa(*addr)); printf("DNS lookup succeeded. IP=%s\r\n", inet_ntoa(*addr));
int s = socket(res->ai_family, res->ai_socktype, 0); int s = socket(res->ai_family, res->ai_socktype, 0);
if(s < 0) { if(s < 0) {
printf("... Failed to allocate socket.\r\n"); printf("... Failed to allocate socket.\r\n");
freeaddrinfo(res); freeaddrinfo(res);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
printf("... allocated socket\r\n"); printf("... allocated socket\r\n");
if(connect(s, res->ai_addr, res->ai_addrlen) != 0) { if(connect(s, res->ai_addr, res->ai_addrlen) != 0) {
close(s); close(s);
freeaddrinfo(res); freeaddrinfo(res);
printf("... socket connect failed.\r\n"); printf("... socket connect failed.\r\n");
vTaskDelay(4000 / portTICK_RATE_MS); vTaskDelay(4000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
printf("... connected. starting TLS session...\r\n"); printf("... connected. starting TLS session...\r\n");
freeaddrinfo(res); freeaddrinfo(res);
SSL *ssl = ssl_client_new(ssl_ctx, s, NULL, 0); SSL *ssl = ssl_client_new(ssl_ctx, s, NULL, 0);
printf("initial status %p %d\r\n", ssl, ssl_handshake_status(ssl)); printf("initial status %p %d\r\n", ssl, ssl_handshake_status(ssl));
if((err = ssl_handshake_status(ssl)) != SSL_OK) { if((err = ssl_handshake_status(ssl)) != SSL_OK) {
ssl_free(ssl); ssl_free(ssl);
close(s); close(s);
printf("SSL handshake failed. :( %d\r\n", err); printf("SSL handshake failed. :( %d\r\n", err);
vTaskDelay(4000 / portTICK_RATE_MS); vTaskDelay(4000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
const char *common_name = ssl_get_cert_dn(ssl, const char *common_name = ssl_get_cert_dn(ssl,
SSL_X509_CERT_COMMON_NAME); SSL_X509_CERT_COMMON_NAME);
if (common_name) if (common_name)
{ {
printf("Common Name:\t\t\t%s\n", common_name); printf("Common Name:\t\t\t%s\n", common_name);
@ -115,41 +115,41 @@ void http_get_task(void *pvParameters)
display_session_id(ssl); display_session_id(ssl);
display_cipher(ssl); display_cipher(ssl);
const char *req = const char *req =
"GET "WEB_URL"\r\n" "GET "WEB_URL"\r\n"
"User-Agent: esp-open-rtos/0.1 esp8266\r\n" "User-Agent: esp-open-rtos/0.1 esp8266\r\n"
"\r\n"; "\r\n";
if (ssl_write(ssl, (uint8_t *)req, strlen(req) + 1) < 0) { if (ssl_write(ssl, (uint8_t *)req, strlen(req) + 1) < 0) {
printf("... socket send failed\r\n"); printf("... socket send failed\r\n");
ssl_free(ssl); ssl_free(ssl);
close(s); close(s);
vTaskDelay(4000 / portTICK_RATE_MS); vTaskDelay(4000 / portTICK_RATE_MS);
failures++; failures++;
continue; continue;
} }
printf("... socket send success\r\n"); printf("... socket send success\r\n");
uint8_t *recv_buf; uint8_t *recv_buf;
int r; int r;
do { do {
r = ssl_read(ssl, &recv_buf); r = ssl_read(ssl, &recv_buf);
for(int i = 0; i < r; i++) for(int i = 0; i < r; i++)
printf("%c", recv_buf[i]); printf("%c", recv_buf[i]);
} while(r > 0); } while(r > 0);
printf("... done reading from socket. Last read return=%d errno=%d\r\n", r, errno); printf("... done reading from socket. Last read return=%d errno=%d\r\n", r, errno);
if(r != 0) if(r != 0)
failures++; failures++;
else else
successes++; successes++;
ssl_free(ssl); ssl_free(ssl);
close(s); close(s);
printf("successes = %d failures = %d\r\n", successes, failures); printf("successes = %d failures = %d\r\n", successes, failures);
for(int countdown = 10; countdown >= 0; countdown--) { for(int countdown = 10; countdown >= 0; countdown--) {
printf("%d... ", countdown); printf("%d... ", countdown);
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
} }
printf("\r\nStarting again!\r\n"); printf("\r\nStarting again!\r\n");
} }
} }
@ -159,8 +159,8 @@ void user_init(void)
printf("SDK version:%s\n", sdk_system_get_sdk_version()); printf("SDK version:%s\n", sdk_system_get_sdk_version());
struct sdk_station_config config = { struct sdk_station_config config = {
.ssid = WIFI_SSID, .ssid = WIFI_SSID,
.password = WIFI_PASS, .password = WIFI_PASS,
}; };
/* required to call wifi_set_opmode before station_set_config */ /* required to call wifi_set_opmode before station_set_config */
@ -199,27 +199,26 @@ static void display_cipher(SSL *ssl)
printf("CIPHER is "); printf("CIPHER is ");
switch (ssl_get_cipher_id(ssl)) switch (ssl_get_cipher_id(ssl))
{ {
case SSL_AES128_SHA: case SSL_AES128_SHA:
printf("AES128-SHA"); printf("AES128-SHA");
break; break;
case SSL_AES256_SHA: case SSL_AES256_SHA:
printf("AES256-SHA"); printf("AES256-SHA");
break; break;
case SSL_RC4_128_SHA: case SSL_RC4_128_SHA:
printf("RC4-SHA"); printf("RC4-SHA");
break; break;
case SSL_RC4_128_MD5: case SSL_RC4_128_MD5:
printf("RC4-MD5"); printf("RC4-MD5");
break; break;
default: default:
printf("Unknown - %d", ssl_get_cipher_id(ssl)); printf("Unknown - %d", ssl_get_cipher_id(ssl));
break; break;
} }
printf("\n"); printf("\n");
} }

View file

@ -12,9 +12,9 @@ void task1(void *pvParameters)
printf("Hello from task1!\r\n"); printf("Hello from task1!\r\n");
uint32_t count = 0; uint32_t count = 0;
while(1) { while(1) {
vTaskDelay(100); vTaskDelay(100);
xQueueSend(*queue, &count, 0); xQueueSend(*queue, &count, 0);
count++; count++;
} }
} }
@ -23,12 +23,12 @@ void task2(void *pvParameters)
printf("Hello from task 2!\r\n"); printf("Hello from task 2!\r\n");
xQueueHandle *queue = (xQueueHandle *)pvParameters; xQueueHandle *queue = (xQueueHandle *)pvParameters;
while(1) { while(1) {
uint32_t count; uint32_t count;
if(xQueueReceive(*queue, &count, 1000)) { if(xQueueReceive(*queue, &count, 1000)) {
printf("Got %d\n", count); printf("Got %d\n", count);
} else { } else {
printf("No msg :(\n"); printf("No msg :(\n");
} }
} }
} }
@ -42,5 +42,3 @@ void user_init(void)
xTaskCreate(task1, (signed char *)"tsk1", 256, &mainqueue, 2, NULL); xTaskCreate(task1, (signed char *)"tsk1", 256, &mainqueue, 2, NULL);
xTaskCreate(task2, (signed char *)"tsk2", 256, &mainqueue, 2, NULL); xTaskCreate(task2, (signed char *)"tsk2", 256, &mainqueue, 2, NULL);
} }