This commit is contained in:
Sebastien
2020-01-16 15:45:31 -05:00
14 changed files with 90 additions and 61 deletions

View File

@@ -25,7 +25,6 @@
#include <stdio.h>
#include <string.h>
#include "esp_system.h"
#include "ctype.h"
#include "esp_log.h"
#include "esp_console.h"
#include "esp_vfs_dev.h"
@@ -90,10 +89,10 @@ static void * free_fn(void * ptr){
}
#endif
void init_cJSON(){
static cJSON_Hooks hooks;
// initialize cJSON hooks it uses SPIRAM memory
// as opposed to IRAM
#if RECOVERY_APPLICATION==0
static cJSON_Hooks hooks;
// In squeezelite mode, allocate memory from PSRAM. Otherwise allocate from internal RAM
// as recovery will lock flash access when erasing FLASH or writing to OTA partition.
hooks.malloc_fn=&malloc_fn;
@@ -705,39 +704,6 @@ esp_err_t config_set_value(nvs_type_t nvs_type, const char *key, void * value){
return result;
}
#define IS_ALPHA(c) isalpha((int)c)
#define TO_UPPER(c) toupper((int)c)
char * strstri (const char * str1, const char * str2){
char *cp = (char *) str1;
char *s1, *s2;
if ( *str2=='\0' )
return((char *)str1);
while (*cp){
s1 = cp;
s2 = (char *) str2;
while ( *s1!='\0' && *s2!='\0' && (IS_ALPHA(*s1) && IS_ALPHA(*s2))?!(TO_UPPER(*s1) - TO_UPPER(*s2)):!(*s1-*s2)){
ESP_LOGW(TAG,"Matched [%c] = [%c] ", IS_ALPHA(*s1)?TO_UPPER(*s1):*s1,IS_ALPHA(*s2)?TO_UPPER(*s2):*s2);
++s1, ++s2;
}
if (*s2=='\0'){
ESP_LOGW(TAG,"String %s found!", str2);
return(cp);
}
++cp;
ESP_LOGW(TAG,"%s not found. s2 is [%c]. Moving forward to %s", str2, *s2, cp);
}
ESP_LOGW(TAG,"String %s not found", str2);
return(NULL);
}
IMPLEMENT_SET_DEFAULT(uint8_t,NVS_TYPE_U8);
IMPLEMENT_SET_DEFAULT(int8_t,NVS_TYPE_I8);
IMPLEMENT_SET_DEFAULT(uint16_t,NVS_TYPE_U16);
@@ -751,4 +717,3 @@ IMPLEMENT_GET_NUM(uint16_t,NVS_TYPE_U16);
IMPLEMENT_GET_NUM(int16_t,NVS_TYPE_I16);
IMPLEMENT_GET_NUM(uint32_t,NVS_TYPE_U32);
IMPLEMENT_GET_NUM(int32_t,NVS_TYPE_I32);

View File

@@ -37,4 +37,4 @@ void * config_alloc_get(nvs_type_t nvs_type, const char *key) ;
bool wait_for_commit();
char * config_alloc_get_json(bool bFormatted);
esp_err_t config_set_value(nvs_type_t nvs_type, const char *key, void * value);
char * strstri (const char * str1, const char * str2);

View File

@@ -64,7 +64,7 @@ void display_init(char *welcome) {
if (item && *item) {
char * drivername=strstr(item,"driver");
if( !drivername || (drivername && (strstr(drivername,"SSD1306") || strstr(drivername,"ssd1306")))){
if (!drivername || (drivername && strcasestr(drivername,"SSD1306"))) {
handle = &SSD1306_handle;
if (handle->init(item, welcome)) {
slimp_handler_chain = slimp_handler;
@@ -73,7 +73,7 @@ void display_init(char *welcome) {
} else {
ESP_LOGE(TAG, "Display initialization failed");
}
}else {
} else {
ESP_LOGE(TAG,"Unknown display driver name in display config: %s",item);
}
} else {

View File

@@ -246,7 +246,7 @@ static void vfdc_handler( u8_t *_data, int bytes_read) {
void grfe_handler( u8_t *data, int len) {
data += 8;
len -= 8;
#ifndef FULL_REFRESH
// force addressing mode by lines
if (AddressMode != AddressMode_Horizontal) {
@@ -255,7 +255,7 @@ void grfe_handler( u8_t *data, int len) {
}
// try to minmize I2C traffic which is very slow
int rows = Display.Height / 8;
int rows = (Display.Height > 32) ? 4 : Display.Height / 8;
for (int r = 0; r < rows; r++) {
uint8_t first = 0, last;
uint8_t *optr = Display.Framebuffer + r*Display.Width, *iptr = data + r;
@@ -281,12 +281,15 @@ void grfe_handler( u8_t *data, int len) {
// to be verified, but this is as fast as using a pointer on data
for (int i = len - 1; i >= 0; i--) data[i] = BitReverseTable256[data[i]];
if (Display.Height > 32) SSD1306_SetPageAddress( &Display, 0, 32/8-1);
// force addressing mode by columns
if (AddressMode != AddressMode_Vertical) {
AddressMode = AddressMode_Vertical;
SSD1306_SetDisplayAddressMode( &Display, AddressMode );
}
SSD1306_WriteRawData( &Display, data, len);
SSD1306_WriteRawData(&Display, data, len);
#endif
}

View File

@@ -209,7 +209,7 @@ static bool SSD1306_Init( struct SSD1306_Device* DeviceHandle, int Width, int He
SSD1306_HWReset( DeviceHandle );
/* Init sequence according to SSD1306.pdf */
SSD1306_SetMuxRatio( DeviceHandle, 0x3F );
SSD1306_SetMuxRatio( DeviceHandle, Height - 1 );
SSD1306_SetDisplayOffset( DeviceHandle, 0x00 );
SSD1306_SetDisplayStartLine( DeviceHandle, 0 );
SSD1306_SetHFlip( DeviceHandle, false );

View File

@@ -89,7 +89,7 @@ static void control_handler(void *client, button_event_e event, button_press_e p
ESP_LOGD(TAG, "control gpio:%u press:%u long:%u event:%u action:%u", key->gpio, press, long_press, event, action);
if (action > ACTRLS_MAX) {
// need to do the remap here
// need to do the remap here using button_remap
ESP_LOGD(TAG, "remapping buttons");
} else if (action != ACTRLS_NONE) {
ESP_LOGD(TAG, "calling action %u", action);
@@ -304,8 +304,6 @@ esp_err_t actrls_init_json(const char *config) {
esp_err_t loc_err = actrls_process_button(button, cur_config);
err = (err == ESP_OK) ? loc_err : err;
if (loc_err == ESP_OK) {
ESP_LOGI(TAG, "Calling button_create");
button_create((void*) cur_config, cur_config->gpio,cur_config->type, cur_config->pull,cur_config->debounce,
control_handler, cur_config->long_press, cur_config->shifter_gpio);
}