mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-14 17:25:10 +00:00
Merge pull request #1110 from prampec/master
Temporary fix on canned messages total length.
This commit is contained in:
commit
1acabb9d35
@ -39,7 +39,7 @@ void RotaryEncoderInterruptBase::init(
|
|||||||
int32_t RotaryEncoderInterruptBase::runOnce()
|
int32_t RotaryEncoderInterruptBase::runOnce()
|
||||||
{
|
{
|
||||||
InputEvent e;
|
InputEvent e;
|
||||||
e.inputEvent = InputEventChar_NULL;
|
e.inputEvent = InputEventChar_KEY_NONE;
|
||||||
e.source = this->_originName;
|
e.source = this->_originName;
|
||||||
|
|
||||||
if (this->action == ROTARY_ACTION_PRESSED)
|
if (this->action == ROTARY_ACTION_PRESSED)
|
||||||
@ -58,7 +58,7 @@ int32_t RotaryEncoderInterruptBase::runOnce()
|
|||||||
e.inputEvent = this->_eventCcw;
|
e.inputEvent = this->_eventCcw;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.inputEvent != InputEventChar_NULL)
|
if (e.inputEvent != InputEventChar_KEY_NONE)
|
||||||
{
|
{
|
||||||
this->notifyObservers(&e);
|
this->notifyObservers(&e);
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ extern const pb_msgdesc_t AdminMessage_msg;
|
|||||||
#define AdminMessage_fields &AdminMessage_msg
|
#define AdminMessage_fields &AdminMessage_msg
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#define AdminMessage_size 1619
|
#define AdminMessage_size 795
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
|
@ -80,14 +80,14 @@ typedef enum _PositionFlags {
|
|||||||
} PositionFlags;
|
} PositionFlags;
|
||||||
|
|
||||||
typedef enum _InputEventChar {
|
typedef enum _InputEventChar {
|
||||||
InputEventChar_NULL = 0,
|
InputEventChar_KEY_NONE = 0,
|
||||||
InputEventChar_UP = 17,
|
InputEventChar_KEY_UP = 17,
|
||||||
InputEventChar_DOWN = 18,
|
InputEventChar_KEY_DOWN = 18,
|
||||||
InputEventChar_LEFT = 19,
|
InputEventChar_KEY_LEFT = 19,
|
||||||
InputEventChar_RIGHT = 20,
|
InputEventChar_KEY_RIGHT = 20,
|
||||||
InputEventChar_SELECT = 10,
|
InputEventChar_KEY_SELECT = 10,
|
||||||
InputEventChar_BACK = 27,
|
InputEventChar_KEY_BACK = 27,
|
||||||
InputEventChar_CANCEL = 24
|
InputEventChar_KEY_CANCEL = 24
|
||||||
} InputEventChar;
|
} InputEventChar;
|
||||||
|
|
||||||
typedef enum _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType {
|
typedef enum _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType {
|
||||||
@ -180,7 +180,7 @@ typedef struct _RadioConfig_UserPreferences {
|
|||||||
InputEventChar rotary1_event_press;
|
InputEventChar rotary1_event_press;
|
||||||
bool canned_message_plugin_enabled;
|
bool canned_message_plugin_enabled;
|
||||||
char canned_message_plugin_allow_input_source[16];
|
char canned_message_plugin_allow_input_source[16];
|
||||||
char canned_message_plugin_messages[1024];
|
char canned_message_plugin_messages[200];
|
||||||
bool canned_message_plugin_send_bell;
|
bool canned_message_plugin_send_bell;
|
||||||
} RadioConfig_UserPreferences;
|
} RadioConfig_UserPreferences;
|
||||||
|
|
||||||
@ -215,9 +215,9 @@ typedef struct _RadioConfig {
|
|||||||
#define _PositionFlags_MAX PositionFlags_POS_TIMESTAMP
|
#define _PositionFlags_MAX PositionFlags_POS_TIMESTAMP
|
||||||
#define _PositionFlags_ARRAYSIZE ((PositionFlags)(PositionFlags_POS_TIMESTAMP+1))
|
#define _PositionFlags_ARRAYSIZE ((PositionFlags)(PositionFlags_POS_TIMESTAMP+1))
|
||||||
|
|
||||||
#define _InputEventChar_MIN InputEventChar_NULL
|
#define _InputEventChar_MIN InputEventChar_KEY_NONE
|
||||||
#define _InputEventChar_MAX InputEventChar_BACK
|
#define _InputEventChar_MAX InputEventChar_KEY_BACK
|
||||||
#define _InputEventChar_ARRAYSIZE ((InputEventChar)(InputEventChar_BACK+1))
|
#define _InputEventChar_ARRAYSIZE ((InputEventChar)(InputEventChar_KEY_BACK+1))
|
||||||
|
|
||||||
#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MIN RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT11
|
#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MIN RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT11
|
||||||
#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MAX RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT22
|
#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MAX RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT22
|
||||||
@ -418,8 +418,8 @@ extern const pb_msgdesc_t RadioConfig_UserPreferences_msg;
|
|||||||
#define RadioConfig_UserPreferences_fields &RadioConfig_UserPreferences_msg
|
#define RadioConfig_UserPreferences_fields &RadioConfig_UserPreferences_msg
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#define RadioConfig_size 1616
|
#define RadioConfig_size 792
|
||||||
#define RadioConfig_UserPreferences_size 1613
|
#define RadioConfig_UserPreferences_size 789
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
|
@ -30,7 +30,7 @@ CannedMessagePlugin::CannedMessagePlugin()
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Items in array this->messages will be set to be pointing on the right
|
* @brief Items in array this->messages will be set to be pointing on the right
|
||||||
* starting points of the string radioConfig.preferences.canned_message_plugin_messages
|
* starting points of the string this->messageStore
|
||||||
*
|
*
|
||||||
* @return int Returns the number of messages found.
|
* @return int Returns the number of messages found.
|
||||||
*/
|
*/
|
||||||
@ -38,17 +38,23 @@ int CannedMessagePlugin::splitConfiguredMessages()
|
|||||||
{
|
{
|
||||||
int messageIndex = 0;
|
int messageIndex = 0;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
strncpy(
|
||||||
|
this->messageStore,
|
||||||
|
radioConfig.preferences.canned_message_plugin_messages,
|
||||||
|
CANNED_MESSAGE_PLUGIN_MESSAGES_SIZE);
|
||||||
|
|
||||||
this->messages[messageIndex++] =
|
this->messages[messageIndex++] =
|
||||||
radioConfig.preferences.canned_message_plugin_messages;
|
this->messageStore;
|
||||||
int upTo =
|
int upTo =
|
||||||
strlen(radioConfig.preferences.canned_message_plugin_messages) - 1;
|
strlen(this->messageStore) - 1;
|
||||||
|
|
||||||
while (i < upTo)
|
while (i < upTo)
|
||||||
{
|
{
|
||||||
if (radioConfig.preferences.canned_message_plugin_messages[i] == '|')
|
if (this->messageStore[i] == '|')
|
||||||
{
|
{
|
||||||
// Message ending found, replace it with string-end character.
|
// Message ending found, replace it with string-end character.
|
||||||
radioConfig.preferences.canned_message_plugin_messages[i] = '\0';
|
this->messageStore[i] = '\0';
|
||||||
DEBUG_MSG("CannedMessage %d is: '%s'\n",
|
DEBUG_MSG("CannedMessage %d is: '%s'\n",
|
||||||
messageIndex-1, this->messages[messageIndex-1]);
|
messageIndex-1, this->messages[messageIndex-1]);
|
||||||
|
|
||||||
@ -60,7 +66,7 @@ int CannedMessagePlugin::splitConfiguredMessages()
|
|||||||
|
|
||||||
// Next message starts after pipe (|) just found.
|
// Next message starts after pipe (|) just found.
|
||||||
this->messages[messageIndex++] =
|
this->messages[messageIndex++] =
|
||||||
(radioConfig.preferences.canned_message_plugin_messages + i + 1);
|
(this->messageStore + i + 1);
|
||||||
}
|
}
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
@ -90,22 +96,22 @@ int CannedMessagePlugin::handleInputEvent(const InputEvent *event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool validEvent = false;
|
bool validEvent = false;
|
||||||
if (event->inputEvent == static_cast<char>(InputEventChar_UP))
|
if (event->inputEvent == static_cast<char>(InputEventChar_KEY_UP))
|
||||||
{
|
{
|
||||||
DEBUG_MSG("Canned message event UP\n");
|
DEBUG_MSG("Canned message event UP\n");
|
||||||
this->action = CANNED_MESSAGE_ACTION_UP;
|
this->runState = CANNED_MESSAGE_RUN_STATE_ACTION_UP;
|
||||||
validEvent = true;
|
validEvent = true;
|
||||||
}
|
}
|
||||||
if (event->inputEvent == static_cast<char>(InputEventChar_DOWN))
|
if (event->inputEvent == static_cast<char>(InputEventChar_KEY_DOWN))
|
||||||
{
|
{
|
||||||
DEBUG_MSG("Canned message event DOWN\n");
|
DEBUG_MSG("Canned message event DOWN\n");
|
||||||
this->action = CANNED_MESSAGE_ACTION_DOWN;
|
this->runState = CANNED_MESSAGE_RUN_STATE_ACTION_DOWN;
|
||||||
validEvent = true;
|
validEvent = true;
|
||||||
}
|
}
|
||||||
if (event->inputEvent == static_cast<char>(InputEventChar_SELECT))
|
if (event->inputEvent == static_cast<char>(InputEventChar_KEY_SELECT))
|
||||||
{
|
{
|
||||||
DEBUG_MSG("Canned message event Select\n");
|
DEBUG_MSG("Canned message event Select\n");
|
||||||
this->action = CANNED_MESSAGE_ACTION_SELECT;
|
this->runState = CANNED_MESSAGE_RUN_STATE_ACTION_SELECT;
|
||||||
validEvent = true;
|
validEvent = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,76 +151,82 @@ void CannedMessagePlugin::sendText(NodeNum dest,
|
|||||||
|
|
||||||
int32_t CannedMessagePlugin::runOnce()
|
int32_t CannedMessagePlugin::runOnce()
|
||||||
{
|
{
|
||||||
if (!radioConfig.preferences.canned_message_plugin_enabled)
|
if ((!radioConfig.preferences.canned_message_plugin_enabled)
|
||||||
|
|| (this->runState == CANNED_MESSAGE_RUN_STATE_INACTIVE))
|
||||||
{
|
{
|
||||||
return 30000; // TODO: should return MAX_VAL
|
return 30000; // TODO: should return MAX_VAL
|
||||||
}
|
}
|
||||||
DEBUG_MSG("Check status\n");
|
DEBUG_MSG("Check status\n");
|
||||||
UIFrameEvent e = {false, true};
|
UIFrameEvent e = {false, true};
|
||||||
if (this->sendingState == SENDING_STATE_ACTIVE)
|
if (this->runState == CANNED_MESSAGE_RUN_STATE_SENDING_ACTIVE)
|
||||||
{
|
{
|
||||||
// TODO: might have some feedback of sendig state
|
// TODO: might have some feedback of sendig state
|
||||||
this->sendingState = SENDING_STATE_NONE;
|
this->runState = CANNED_MESSAGE_RUN_STATE_INACTIVE;
|
||||||
e.frameChanged = true;
|
e.frameChanged = true;
|
||||||
this->notifyObservers(&e);
|
|
||||||
}
|
|
||||||
else if ((this->action != CANNED_MESSAGE_ACTION_NONE)
|
|
||||||
&& (this->currentMessageIndex == -1))
|
|
||||||
{
|
|
||||||
this->currentMessageIndex = 0;
|
|
||||||
DEBUG_MSG("First touch.\n");
|
|
||||||
e.frameChanged = true;
|
|
||||||
}
|
|
||||||
else if (this->action == CANNED_MESSAGE_ACTION_SELECT)
|
|
||||||
{
|
|
||||||
sendText(
|
|
||||||
NODENUM_BROADCAST,
|
|
||||||
this->messages[this->currentMessageIndex],
|
|
||||||
true);
|
|
||||||
this->sendingState = SENDING_STATE_ACTIVE;
|
|
||||||
this->currentMessageIndex = -1;
|
this->currentMessageIndex = -1;
|
||||||
this->notifyObservers(&e);
|
this->notifyObservers(&e);
|
||||||
return 2000;
|
|
||||||
}
|
}
|
||||||
else if (this->action == CANNED_MESSAGE_ACTION_UP)
|
else if (
|
||||||
{
|
(this->runState == CANNED_MESSAGE_RUN_STATE_ACTIVE)
|
||||||
this->currentMessageIndex = getPrevIndex();
|
&& (millis() - this->lastTouchMillis) > INACTIVATE_AFTER_MS)
|
||||||
DEBUG_MSG("MOVE UP");
|
|
||||||
}
|
|
||||||
else if (this->action == CANNED_MESSAGE_ACTION_DOWN)
|
|
||||||
{
|
|
||||||
this->currentMessageIndex = this->getNextIndex();
|
|
||||||
DEBUG_MSG("MOVE DOWN");
|
|
||||||
}
|
|
||||||
if (this->action != CANNED_MESSAGE_ACTION_NONE)
|
|
||||||
{
|
|
||||||
this->lastTouchMillis = millis();
|
|
||||||
this->action = CANNED_MESSAGE_ACTION_NONE;
|
|
||||||
this->notifyObservers(&e);
|
|
||||||
return INACTIVATE_AFTER_MS;
|
|
||||||
}
|
|
||||||
if ((millis() - this->lastTouchMillis) > INACTIVATE_AFTER_MS)
|
|
||||||
{
|
{
|
||||||
// Reset plugin
|
// Reset plugin
|
||||||
DEBUG_MSG("Reset due the lack of activity.\n");
|
DEBUG_MSG("Reset due the lack of activity.\n");
|
||||||
e.frameChanged = true;
|
e.frameChanged = true;
|
||||||
this->currentMessageIndex = -1;
|
this->currentMessageIndex = -1;
|
||||||
this->sendingState = SENDING_STATE_NONE;
|
this->runState = CANNED_MESSAGE_RUN_STATE_INACTIVE;
|
||||||
this->notifyObservers(&e);
|
this->notifyObservers(&e);
|
||||||
}
|
}
|
||||||
|
else if (this->currentMessageIndex == -1)
|
||||||
|
{
|
||||||
|
this->currentMessageIndex = 0;
|
||||||
|
DEBUG_MSG("First touch.\n");
|
||||||
|
e.frameChanged = true;
|
||||||
|
this->runState = CANNED_MESSAGE_RUN_STATE_ACTIVE;
|
||||||
|
}
|
||||||
|
else if (this->runState == CANNED_MESSAGE_RUN_STATE_ACTION_SELECT)
|
||||||
|
{
|
||||||
|
sendText(
|
||||||
|
NODENUM_BROADCAST,
|
||||||
|
this->messages[this->currentMessageIndex],
|
||||||
|
true);
|
||||||
|
this->runState = CANNED_MESSAGE_RUN_STATE_SENDING_ACTIVE;
|
||||||
|
this->currentMessageIndex = -1;
|
||||||
|
this->notifyObservers(&e);
|
||||||
|
return 2000;
|
||||||
|
}
|
||||||
|
else if (this->runState == CANNED_MESSAGE_RUN_STATE_ACTION_UP)
|
||||||
|
{
|
||||||
|
this->currentMessageIndex = getPrevIndex();
|
||||||
|
this->runState = CANNED_MESSAGE_RUN_STATE_ACTIVE;
|
||||||
|
DEBUG_MSG("MOVE UP\n");
|
||||||
|
}
|
||||||
|
else if (this->runState == CANNED_MESSAGE_RUN_STATE_ACTION_DOWN)
|
||||||
|
{
|
||||||
|
this->currentMessageIndex = this->getNextIndex();
|
||||||
|
this->runState = CANNED_MESSAGE_RUN_STATE_ACTIVE;
|
||||||
|
DEBUG_MSG("MOVE DOWN\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this->runState == CANNED_MESSAGE_RUN_STATE_ACTIVE)
|
||||||
|
{
|
||||||
|
this->lastTouchMillis = millis();
|
||||||
|
this->notifyObservers(&e);
|
||||||
|
return INACTIVATE_AFTER_MS;
|
||||||
|
}
|
||||||
|
|
||||||
return 30000; // TODO: should return MAX_VAL
|
return 30000; // TODO: should return MAX_VAL
|
||||||
}
|
}
|
||||||
|
|
||||||
String CannedMessagePlugin::getCurrentMessage()
|
const char* CannedMessagePlugin::getCurrentMessage()
|
||||||
{
|
{
|
||||||
return this->messages[this->currentMessageIndex];
|
return this->messages[this->currentMessageIndex];
|
||||||
}
|
}
|
||||||
String CannedMessagePlugin::getPrevMessage()
|
const char* CannedMessagePlugin::getPrevMessage()
|
||||||
{
|
{
|
||||||
return this->messages[this->getPrevIndex()];
|
return this->messages[this->getPrevIndex()];
|
||||||
}
|
}
|
||||||
String CannedMessagePlugin::getNextMessage()
|
const char* CannedMessagePlugin::getNextMessage()
|
||||||
{
|
{
|
||||||
return this->messages[this->getNextIndex()];
|
return this->messages[this->getNextIndex()];
|
||||||
}
|
}
|
||||||
@ -224,11 +236,7 @@ bool CannedMessagePlugin::shouldDraw()
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return (currentMessageIndex != -1) || (this->sendingState != SENDING_STATE_NONE);
|
return (currentMessageIndex != -1) || (this->runState != CANNED_MESSAGE_RUN_STATE_INACTIVE);
|
||||||
}
|
|
||||||
cannedMessagePluginSendigState CannedMessagePlugin::getSendingState()
|
|
||||||
{
|
|
||||||
return this->sendingState;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int CannedMessagePlugin::getNextIndex()
|
int CannedMessagePlugin::getNextIndex()
|
||||||
@ -260,7 +268,13 @@ void CannedMessagePlugin::drawFrame(
|
|||||||
{
|
{
|
||||||
displayedNodeNum = 0; // Not currently showing a node pane
|
displayedNodeNum = 0; // Not currently showing a node pane
|
||||||
|
|
||||||
if (cannedMessagePlugin->getSendingState() == SENDING_STATE_NONE)
|
if (cannedMessagePlugin->runState == CANNED_MESSAGE_RUN_STATE_SENDING_ACTIVE)
|
||||||
|
{
|
||||||
|
display->setTextAlignment(TEXT_ALIGN_CENTER);
|
||||||
|
display->setFont(FONT_MEDIUM);
|
||||||
|
display->drawString(display->getWidth()/2 + x, 0 + y + 12, "Sending...");
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
display->setTextAlignment(TEXT_ALIGN_LEFT);
|
display->setTextAlignment(TEXT_ALIGN_LEFT);
|
||||||
display->setFont(FONT_SMALL);
|
display->setFont(FONT_SMALL);
|
||||||
@ -270,11 +284,5 @@ void CannedMessagePlugin::drawFrame(
|
|||||||
display->setFont(FONT_SMALL);
|
display->setFont(FONT_SMALL);
|
||||||
display->drawString(0 + x, 0 + y + 24, cannedMessagePlugin->getNextMessage());
|
display->drawString(0 + x, 0 + y + 24, cannedMessagePlugin->getNextMessage());
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
display->setTextAlignment(TEXT_ALIGN_CENTER);
|
|
||||||
display->setFont(FONT_MEDIUM);
|
|
||||||
display->drawString(display->getWidth()/2 + x, 0 + y + 12, "Sending...");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,22 +2,23 @@
|
|||||||
#include "SinglePortPlugin.h"
|
#include "SinglePortPlugin.h"
|
||||||
#include "input/InputBroker.h"
|
#include "input/InputBroker.h"
|
||||||
|
|
||||||
enum cannedMessagePluginActionType
|
enum cannedMessagePluginRunState
|
||||||
{
|
{
|
||||||
CANNED_MESSAGE_ACTION_NONE,
|
CANNED_MESSAGE_RUN_STATE_INACTIVE,
|
||||||
CANNED_MESSAGE_ACTION_SELECT,
|
CANNED_MESSAGE_RUN_STATE_ACTIVE,
|
||||||
CANNED_MESSAGE_ACTION_UP,
|
CANNED_MESSAGE_RUN_STATE_SENDING_ACTIVE,
|
||||||
CANNED_MESSAGE_ACTION_DOWN
|
CANNED_MESSAGE_RUN_STATE_ACTION_SELECT,
|
||||||
};
|
CANNED_MESSAGE_RUN_STATE_ACTION_UP,
|
||||||
|
CANNED_MESSAGE_RUN_STATE_ACTION_DOWN
|
||||||
enum cannedMessagePluginSendigState
|
|
||||||
{
|
|
||||||
SENDING_STATE_NONE,
|
|
||||||
SENDING_STATE_ACTIVE
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#define CANNED_MESSAGE_PLUGIN_MESSAGE_MAX_COUNT 50
|
#define CANNED_MESSAGE_PLUGIN_MESSAGE_MAX_COUNT 50
|
||||||
|
/**
|
||||||
|
* Due to config-packet size restrictions we cannot have user configuration bigger
|
||||||
|
* than Constants_DATA_PAYLOAD_LEN bytes.
|
||||||
|
*/
|
||||||
|
#define CANNED_MESSAGE_PLUGIN_MESSAGES_SIZE 200
|
||||||
|
|
||||||
class CannedMessagePlugin :
|
class CannedMessagePlugin :
|
||||||
public SinglePortPlugin,
|
public SinglePortPlugin,
|
||||||
@ -29,11 +30,10 @@ class CannedMessagePlugin :
|
|||||||
this, &CannedMessagePlugin::handleInputEvent);
|
this, &CannedMessagePlugin::handleInputEvent);
|
||||||
public:
|
public:
|
||||||
CannedMessagePlugin();
|
CannedMessagePlugin();
|
||||||
String getCurrentMessage();
|
const char* getCurrentMessage();
|
||||||
String getPrevMessage();
|
const char* getPrevMessage();
|
||||||
String getNextMessage();
|
const char* getNextMessage();
|
||||||
bool shouldDraw();
|
bool shouldDraw();
|
||||||
cannedMessagePluginSendigState getSendingState();
|
|
||||||
void eventUp();
|
void eventUp();
|
||||||
void eventDown();
|
void eventDown();
|
||||||
void eventSelect();
|
void eventSelect();
|
||||||
@ -57,10 +57,10 @@ class CannedMessagePlugin :
|
|||||||
virtual void drawFrame(
|
virtual void drawFrame(
|
||||||
OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y);
|
OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y);
|
||||||
|
|
||||||
volatile cannedMessagePluginActionType action = CANNED_MESSAGE_ACTION_NONE;
|
|
||||||
int currentMessageIndex = -1;
|
int currentMessageIndex = -1;
|
||||||
cannedMessagePluginSendigState sendingState = SENDING_STATE_NONE;
|
cannedMessagePluginRunState runState = CANNED_MESSAGE_RUN_STATE_INACTIVE;
|
||||||
|
|
||||||
|
char messageStore[CANNED_MESSAGE_PLUGIN_MESSAGES_SIZE];
|
||||||
char *messages[CANNED_MESSAGE_PLUGIN_MESSAGE_MAX_COUNT];
|
char *messages[CANNED_MESSAGE_PLUGIN_MESSAGE_MAX_COUNT];
|
||||||
int messagesCount = 0;
|
int messagesCount = 0;
|
||||||
unsigned long lastTouchMillis = 0;
|
unsigned long lastTouchMillis = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user