muwerk Scheduler Library
A low-resource cooperative scheduler with MQTT-like queues for Arduinos, ATtiny up to ESP32
Loading...
Searching...
No Matches
muwerk.h
1// mutils.h - muwerk utility functions
2
3#pragma once
4
38#include "ustd_platform.h"
39#include "ustd_array.h"
40
42namespace ustd {
43
44unsigned long timeDiff(unsigned long first, unsigned long second) {
57 if (second >= first)
58 return second - first;
59 return (unsigned long)-1 - first + second + 1;
60}
61
62void split(String &src, char delimiter, array<String> &result) {
68 int ind;
69 String source = src;
70 String sb;
71 while (true) {
72#if defined(__UNIXOID__) || defined(__RP_PICO__)
73 ind = (int)source.find(delimiter);
74#else
75 ind = source.indexOf(delimiter);
76#endif
77 if (ind == -1) {
78 result.add(source);
79 return;
80 } else {
81#if defined(__UNIXOID__) || defined(__RP_PICO__)
82 sb = source.substr(0, ind);
83 result.add(sb);
84 source = source.substr(ind + 1);
85#else
86 sb = source.substring(0, ind);
87 result.add(sb);
88 source = source.substring(ind + 1);
89#endif
90 }
91 }
92}
93
94String shift(String &src, char delimiter = ' ', String defValue = "") {
103 if (src == "") {
104 return defValue;
105 }
106#if defined(__UNIXOID__) || defined(__RP_PICO__)
107 int ind = (int)src.find(delimiter);
108#else
109 int ind = src.indexOf(delimiter);
110#endif
111 String ret = defValue;
112 if (ind == -1) {
113 ret = src;
114 src = "";
115 } else {
116#if defined(__UNIXOID__) || defined(__RP_PICO__)
117 ret = src.substr(0, ind);
118 src = src.substr(ind + 1);
119 // src.trim();
120#else
121 ret = src.substring(0, ind);
122 src = src.substring(ind + 1);
123 src.trim();
124#endif
125 }
126 return ret;
127}
128
129} // namespace ustd
The muwerk namespace.
Definition console.h:15
void split(String &src, char delimiter, array< String > &result)
Definition muwerk.h:62
String shift(String &src, char delimiter=' ', String defValue="")
Definition muwerk.h:94
unsigned long timeDiff(unsigned long first, unsigned long second)
Definition muwerk.h:44