Skip to content

Instantly share code, notes, and snippets.

@DaleGia
DaleGia / ESPFlash_example5.cpp
Created June 10, 2020 10:06
ESPFlash: Truncate a filename in excess of 32 characters so it can be used with SPIFFS.
/*
Truncate a filename in excess of 32 characters so it can be
used with SPIFFS.
*/
/* Filenames are automatically truncated if in excess of 32 characters */
/* The file extension is preserved */
ESPFlash<float> floatExample("/thisFilenameIsLargerThan32Characters.txt");
/* The above code replaces the following SPIFFS implementation */
const char* filename = "/thisFilenameIsLargerThan32Characters.txt";
@DaleGia
DaleGia / ESPFlash_example4.cpp
Created June 10, 2020 10:05
ESPFlash: Open a file with a filename of “/floatArrayExample” and get the last 5 float elements stored in the file with error checking.
/*
Open a file with a filename of “/floatArrayExample” and get the last 5
float elements stored in the file with error checking.
*/
float testGet[5];
ESPFlash<float> floatExample("/floatArrayExample");
bool success = floatExample.getBackElements(testGet, sizeof(testGet));
/* The above code replaces the following SPIFFS implementation */
float testGet[5];
@DaleGia
DaleGia / ESPFlash_example3.cpp
Created June 10, 2020 10:03
ESPFlash: Open a file with a filename of “/lengthExample” and get the number of elements stored in the file with error checking.
/*
Open a file with a filename of “/lengthExample” and get the number of
elements stored in the file with error checking.
*/
ESPFlash<double> lengthExample("/lengthExample");
uint32_t numberOfElements = lengthExample.length();
/* The above code replaces the following SPIFFS implementation */
File file;
uint32_t sizeInBytes = 0;
@DaleGia
DaleGia / ESPFlash_example2.cpp
Last active June 10, 2020 10:02
ESPFlash: Creating a file with a filename of “/charArrayExample” and store 10 chars in the file with error checking.
/*
Creating a file with a filename of “/charArrayExample” and store
10 chars in the file with error checking.
*/
char testData[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
ESPFlash<char> charExample("/charArrayExample");
bool success = charExample.setElements(testData, sizeof(testData));
/* The above code replaces the following SPIFFS implementation */
char testData[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
@DaleGia
DaleGia / ESPFlash_example1.cpp
Last active June 10, 2020 09:57
ESPFlash: Creating a file with a filename of “/intExample” and storing a single integer in the file with error checking.
/* Creating a file with a filename of “/intExample” and storing a
single integer in the file with error checking. */
int testData = 10;
ESPFlash<int> intExample("/intExample")
bool success = intExample.set(10);
/* The above code replaces the following SPIFFS implementation */
int testData = 10;
bool success = false;
uint32_t bytesWritten = 0;
We can make this file beautiful and searchable if this error is corrected: It looks like row 9 should actually have 6 columns, instead of 4. in line 8.
Node Name, Node Type, Parent Node, Area, Control Attributes, Technical Notes
Cleverman_Entire-Exhibition, Management,,Gallery-2,MUTE/UNMUTE/VOLDOWN/VOLUP/PAUSE/RESUME/DISPLAYOFF/DISPLAYON/POWEROFF/POWERON/REBOOT,
Cleverman_Scheduler, Management,,,,
,,,,,
Cleverman_The-Lab, Management, Cleverman_Entire-Exhibition, Gallery-2, MUTE/UNMUTE/VOLDOWN/VOLUP/PAUSE/RESUME/DISPLAYOFF/DISPLAYON/POWEROFF/POWERON/REBOOT,
Cleverman_The-Lab_Master-1_BrightSign-LS442_CM-001, Device, Cleverman_The-Lab, Gallery-2, MUTE/UNMUTE/VOLDOWN/VOLUP/PAUSE/RESUME/DISPLAYOFF/DISPLAYON/REBOOT, IP:XXX.XXX.XXX.XXX
Cleverman_The-Lab_Slave-2_BrightSign-LS442_CM-002, Device, Cleverman_The-Lab, Gallery-2, MUTE/UNMUTE/VOLDOWN/VOLUP/PAUSE/RESUME/DISPLAYOFF/DISPLAYON/REBOOT, IP:XXX.XXX.XXX.XXX
Cleverman_The-Lab_Slave-3_BrightSign-LS442_CM-003, Device, Cleverman_The-Lab, Gallery-2, MUTE/UNMUTE/VOLDOWN/VOLUP/PAUSE/RESUME/DISPLAYOFF/DISPLAYON/REBOOT, IP:XXX.XXX.XXX.XXX
Cleverman_The-Lab_Slave-4_BrightSign-LS442_CM-004, Device, Cleverman_The-Lab, Galler
Control Description Control Group Name Control Name
Audio Mute Audio MUTE
Audio Unmute Audio UNMUTE
Audio Volume Down 5% Audio VOLDOWN
Audio Volume Up 5% Audio VOLUP
Content Pause Content PAUSE
Content Resume Content RESUME
Display Off Display OFF
Display On Display On
Power Off Power POWEROFF
SPACE/EXIBITION NAME CODE DEVICE PLAYBACK DEVICE CONTROL IP ADDRESS
Cleverman The Lab Master 1 CM-001 BrightSign LS442 CAT6 XXX.XXX.XXX.XXX
Cleverman The Lab Slave 2 CM-002 BrightSign LS442 CAT6 XXX.XXX.XXX.XXX
Cleverman The Lab Slave 3 CM-003 BrightSign LS442 CAT6 XXX.XXX.XXX.XXX
Cleverman The Lab Slave 4 CM-004 BrightSign LS442 CAT6 XXX.XXX.XXX.XXX
Cleverman The Lab Slave 5 CM-005 BrightSign LS442 CAT6 XXX.XXX.XXX.XXX
Cleverman The Lab 6 CM-007 BrightSign HD1023 CAT6 XXX.XXX.XXX.XXX
Cleverman The Lab 7 CM-008 BrightSign HD1023 CAT6 XXX.XXX.XXX.XXX
Cleverman Koen/Blue Blast CM-006 BrightSign LS442 CAT6 XXX.XXX.XXX.XXX
Cleverman The Zone 32 CM-009 BrightSign HD1023 CAT6 XXX.XXX.XXX.XXX
@DaleGia
DaleGia / management_node_recipe_example.py
Created March 10, 2019 13:41
Management Node Recipe example
def TurnOn(arg = None):
print("Turning on Nodes")
for parameters in lookup_parameter('members') or []:
if(parameters != None):
targetNode = parameters.get('targetNode')
remoteActionName = parameters.get('targetActionName')
lookup_remote_action(targetNode + remoteActionName).call()
def UpdateStatus(message):
print('Management Status: Status requested')
aggregateMessage = ''
@DaleGia
DaleGia / parameters_example.py
Created March 10, 2019 13:34
Example of Parameters in Nodel
param_parameterRequiredString = Parameter({'title': 'Parameter Required String Example', 'schema':
{'type':'string', 'required': True}
})
param_parameterNotRequiredString = Parameter({'title': 'Parameter Not Required String Example', 'schema':
{'type':'string', 'required': False}
})
param_parameterInteger = Parameter({'title': 'Parameter Integer Example', 'schema':
{'type':'integer', 'required': False}
})