Skip to content

Commit

Permalink
dlog fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
mvladic committed Nov 24, 2019
1 parent bf28119 commit 132133d
Show file tree
Hide file tree
Showing 21 changed files with 293 additions and 283 deletions.
148 changes: 58 additions & 90 deletions modular-psu-firmware.eez-project
Original file line number Diff line number Diff line change
Expand Up @@ -1416,12 +1416,6 @@
"type": "float",
"defaultValue": "66%"
},
{
"name": "dlog_status",
"type": "enum",
"enumItems": "[\n \"Idle\", \n \"Initiated\", \n \"Triggered\",\n \"Executing\"\n]",
"defaultValue": "3"
},
{
"name": "main_app_view",
"type": "string",
Expand Down Expand Up @@ -1792,9 +1786,16 @@
"defaultValue": "[{}, {}]"
},
{
"name": "dlog_started",
"type": "boolean",
"defaultValue": "0"
"name": "dlog_state",
"type": "enum",
"enumItems": "[\n \"Idle\", \n \"Initiated\", \n \"Executing\"\n]",
"defaultValue": "3"
},
{
"name": "dlog_toggle_state",
"type": "enum",
"enumItems": "[\"off\", \"on\", \"manual trigger\", \"other trigger\"]",
"defaultValue": "2"
},
{
"name": "recording",
Expand Down Expand Up @@ -1988,11 +1989,6 @@
"name": "dlog_file_name",
"type": "string",
"defaultValue": "file name"
},
{
"name": "dlog_append_time",
"type": "boolean",
"defaultValue": "1"
}
],
"actions": [
Expand Down Expand Up @@ -2628,9 +2624,6 @@
{
"name": "dlog_start_recording"
},
{
"name": "dlog_toggle_append_time"
},
{
"name": "file_manager_sort_by"
}
Expand Down Expand Up @@ -7079,7 +7072,7 @@
"style": {
"inheritFrom": "default"
},
"data": "dlog_started",
"data": "dlog_toggle_state",
"left": 0,
"top": 0,
"width": 40,
Expand Down Expand Up @@ -7114,6 +7107,38 @@
"height": 32,
"text": "\\u0023",
"focusStyle": {}
},
{
"type": "Text",
"style": {
"inheritFrom": "status_icon_enabled",
"color": "status_line_text",
"activeBackgroundColor": "status_line_text",
"blink": true
},
"action": "dlog_toggle",
"left": 0,
"top": 0,
"width": 40,
"height": 32,
"text": "\\u0023",
"focusStyle": {}
},
{
"type": "Text",
"style": {
"inheritFrom": "status_icon_enabled",
"color": "status_line_text_disabled",
"activeBackgroundColor": "status_line_text_disabled",
"blink": true
},
"action": "",
"left": 0,
"top": 0,
"width": 40,
"height": 32,
"text": "\\u0023",
"focusStyle": {}
}
]
},
Expand Down Expand Up @@ -7689,7 +7714,7 @@
"style": {
"inheritFrom": "overlay"
},
"data": "dlog_status",
"data": "dlog_state",
"left": 40,
"top": 36,
"width": 200,
Expand Down Expand Up @@ -7719,17 +7744,6 @@
"text": "Dlog trigger waiting",
"focusStyle": {}
},
{
"type": "Rectangle",
"style": {
"inheritFrom": "overlay"
},
"left": 0,
"top": 0,
"width": 200,
"height": 28,
"invertColors": true
},
{
"type": "Container",
"style": {
Expand Down Expand Up @@ -43380,7 +43394,7 @@
"activeColor": "status_line_background",
"activeBackgroundColor": "status_line_text"
},
"data": "dlog_status",
"data": "dlog_state",
"left": 80,
"top": 0,
"width": 360,
Expand Down Expand Up @@ -43418,21 +43432,6 @@
"text": "Dlog trigger waiting",
"focusStyle": {}
},
{
"type": "Rectangle",
"style": {
"inheritFrom": "default",
"color": "status_line_text",
"backgroundColor": "status_line_background",
"activeColor": "status_line_background",
"activeBackgroundColor": "status_line_text"
},
"left": 0,
"top": 0,
"width": 360,
"height": 32,
"invertColors": true
},
{
"type": "Container",
"style": {
Expand Down Expand Up @@ -43739,10 +43738,21 @@
"left": 0,
"top": 0,
"width": 40,
"height": 32,
"height": 27,
"text": "",
"focusStyle": {}
},
{
"type": "Rectangle",
"style": {
"inheritFrom": "channel1"
},
"left": 6,
"top": 27,
"width": 28,
"height": 4,
"invertColors": true
},
{
"type": "Select",
"style": {
Expand Down Expand Up @@ -44094,56 +44104,14 @@
"action": "dlog_edit_file_name",
"left": 69,
"top": 165,
"width": 156,
"width": 286,
"height": 32,
"focusStyle": {
"inheritFrom": "encoder_cursor_14_focused",
"padding": 0
},
"displayOption": 0
},
{
"type": "Select",
"style": {
"inheritFrom": "default"
},
"data": "dlog_append_time",
"action": "dlog_toggle_append_time",
"left": 231,
"top": 165,
"width": 123,
"height": 32,
"widgets": [
{
"type": "Text",
"style": {
"inheritFrom": "edit_value_active_S_left",
"backgroundColor": "Background",
"activeColor": "Background"
},
"data": "",
"left": 0,
"top": 0,
"width": 123,
"height": 32,
"text": "\\u00a0 Append time",
"focusStyle": {}
},
{
"type": "Text",
"style": {
"inheritFrom": "edit_value_S_left"
},
"data": "",
"left": 0,
"top": 0,
"width": 123,
"height": 32,
"text": "\\u009F Append time",
"focusStyle": {}
}
]
},
{
"type": "Button",
"style": {
Expand Down
9 changes: 9 additions & 0 deletions src/eez/file_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,13 @@ enum FileType {
FILE_TYPE_OTHER,
};

enum SortFilesOption {
SORT_FILES_BY_NAME_ASC,
SORT_FILES_BY_NAME_DESC,
SORT_FILES_BY_SIZE_ASC,
SORT_FILES_BY_SIZE_DESC,
SORT_FILES_BY_TIME_ASC,
SORT_FILES_BY_TIME_DESC
};

} // eez
24 changes: 9 additions & 15 deletions src/eez/gui/action_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1125,15 +1125,15 @@ void action_show_dlog_params() {
}

void action_dlog_voltage_toggle() {
dlog_record::g_parameters.logVoltage[getFoundWidgetAtDown().cursor.i] = !dlog_record::g_parameters.logVoltage[getFoundWidgetAtDown().cursor.i];
dlog_record::g_guiParameters.logVoltage[getFoundWidgetAtDown().cursor.i] = !dlog_record::g_guiParameters.logVoltage[getFoundWidgetAtDown().cursor.i];
}

void action_dlog_current_toggle() {
dlog_record::g_parameters.logCurrent[getFoundWidgetAtDown().cursor.i] = !dlog_record::g_parameters.logCurrent[getFoundWidgetAtDown().cursor.i];
dlog_record::g_guiParameters.logCurrent[getFoundWidgetAtDown().cursor.i] = !dlog_record::g_guiParameters.logCurrent[getFoundWidgetAtDown().cursor.i];
}

void action_dlog_power_toggle() {
dlog_record::g_parameters.logPower[getFoundWidgetAtDown().cursor.i] = !dlog_record::g_parameters.logPower[getFoundWidgetAtDown().cursor.i];
dlog_record::g_guiParameters.logPower[getFoundWidgetAtDown().cursor.i] = !dlog_record::g_guiParameters.logPower[getFoundWidgetAtDown().cursor.i];
}

void action_dlog_edit_period() {
Expand All @@ -1148,16 +1148,9 @@ void action_dlog_edit_file_name() {
editValue(DATA_ID_DLOG_FILE_NAME);
}

void action_dlog_toggle_append_time() {
#if OPTION_SD_CARD
dlog_record::g_guiParameters.appendTime = !dlog_record::g_guiParameters.appendTime;
#endif
}

void action_dlog_toggle() {
#if OPTION_SD_CARD
using namespace scpi;
osMessagePut(g_scpiMessageQueueId, SCPI_QUEUE_MESSAGE(SCPI_QUEUE_MESSAGE_TARGET_NONE, SCPI_QUEUE_MESSAGE_DLOG_TOGGLE, 0), osWaitForever);
dlog_record::toggle();
#endif
}

Expand All @@ -1175,7 +1168,7 @@ void action_dlog_start_recording() {

char filePath[MAX_PATH_LENGTH + 1];

if (dlog_record::g_guiParameters.appendTime) {
if (isStringEmpty(dlog_record::g_guiParameters.filePath)) {
uint8_t year, month, day, hour, minute, second;
datetime::getDate(year, month, day);
datetime::getTime(hour, minute, second);
Expand All @@ -1191,12 +1184,13 @@ void action_dlog_start_recording() {
memcpy(&dlog_record::g_parameters, &dlog_record::g_guiParameters, sizeof(dlog_record::g_guiParameters));
strcpy(dlog_record::g_parameters.filePath, filePath);

action_dlog_toggle();
dlog_record::toggle();
#endif
}

void action_show_file_manager() {
#if OPTION_SD_CARD
file_manager::loadDirectory();
showPage(PAGE_ID_FILE_MANAGER);
#endif
}
Expand Down Expand Up @@ -1239,12 +1233,12 @@ void action_file_manager_delete_file() {

void onSetFileManagerSortBy(uint16_t value) {
popPage();
file_manager::setSortBy((file_manager::SortBy)value);
file_manager::setSortFilesOption((SortFilesOption)value);
}

void action_file_manager_sort_by() {
#if OPTION_SD_CARD
pushSelectFromEnumPage(g_fileManagerSortByEnumDefinition, file_manager::getSortBy(), NULL, onSetFileManagerSortBy, true);
pushSelectFromEnumPage(g_fileManagerSortByEnumDefinition, file_manager::getSortFilesOption(), NULL, onSetFileManagerSortBy, true);
#endif
}

Expand Down
6 changes: 6 additions & 0 deletions src/eez/gui/data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@ void FLOAT_value_to_text(const Value &value, char *text, int count) {
text[0] = 0;

float floatValue = value.getFloat();

if (isinf(floatValue)) {
strcat(text, INF_TEXT);
return;
}

Unit unit = value.getUnit();

if (floatValue != 0) {
Expand Down
26 changes: 15 additions & 11 deletions src/eez/gui/widgets/scroll_bar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ namespace gui {

static ScrollBarWidgetSegment g_segment;
static WidgetCursor g_selectedWidget;
static int g_thumbOffset;
static int g_dragStartX;
static int g_dragStartPosition;

#if OPTION_SDRAM
void ScrollBarWidget_fixPointers(Widget *widget) {
Expand Down Expand Up @@ -66,15 +67,18 @@ bool setPosition(const WidgetCursor &widgetCursor, int position) {
}

void getThumbGeometry(int size, int position, int pageSize, int xTrack, int wTrack, int minThumbWidth, int &xThumb, int &widthThumb) {
xThumb = xTrack + (int)floorf(1.0f * position * wTrack / size);
widthThumb = MAX((int)floorf(1.0f * pageSize * wTrack / size), minThumbWidth);
if (xThumb + widthThumb >= xTrack + wTrack) {
xThumb = xTrack + wTrack - widthThumb;
double x = 1.0 * position * wTrack / size;
double width = 1.0 * pageSize * wTrack / size;

if (width < minThumbWidth) {
x -= 1.0 * (minThumbWidth - width) * position / size;
width = minThumbWidth;
}
}

int getPositionFromThumbPosition(int thumbPosition, int size, int xTrack, int wTrack) {
return (int)roundf(1.0f * size * (thumbPosition - xTrack) / wTrack);
xThumb = (int)round(x);
widthThumb = (int)round(width + x - xThumb);

xThumb += xTrack;
}

void ScrollBarWidget_draw(const WidgetCursor &widgetCursor) {
Expand Down Expand Up @@ -237,14 +241,14 @@ void ScrollBarWidget_onTouch(const WidgetCursor &widgetCursor, Event &touchEvent
}
} else if (x >= xThumb || touchEvent.x < xThumb + wThumb) {
g_segment = SCROLL_BAR_WIDGET_SEGMENT_THUMB;
g_thumbOffset = xThumb - x;

g_dragStartX = x;
g_dragStartPosition = getPosition(widgetCursor);
}
}
} else if (touchEvent.type == EVENT_TYPE_TOUCH_MOVE) {
if (g_segment == SCROLL_BAR_WIDGET_SEGMENT_THUMB) {
int size = getSize(widgetCursor);
setPosition(widgetCursor, getPositionFromThumbPosition(x + g_thumbOffset, size, xTrack, wTrack));
setPosition(widgetCursor, g_dragStartPosition + (int)round(1.0 * (x - g_dragStartX) * size / wTrack));
}
} else if (touchEvent.type == EVENT_TYPE_TOUCH_UP) {
g_selectedWidget = 0;
Expand Down
Loading

0 comments on commit 132133d

Please sign in to comment.