Kuhnya Changed IP for MQTT. Added JLed
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
//
|
||||
// FILE: RunningMedian.ino
|
||||
// AUTHOR: Rob Tillaart ( kudos to Sembazuru)
|
||||
// VERSION: 0.1.2
|
||||
// PURPOSE: demo basic usage
|
||||
// DATE: 2013-10-17
|
||||
// URL: https://github.com/RobTillaart/RunningMedian
|
||||
//
|
||||
|
||||
#include <RunningMedian.h>
|
||||
|
||||
RunningMedian samples = RunningMedian(5);
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.print("Running Median Version: ");
|
||||
Serial.println(RUNNING_MEDIAN_VERSION);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
test1();
|
||||
}
|
||||
|
||||
void test1()
|
||||
{
|
||||
int x = analogRead(A0);
|
||||
|
||||
samples.add(x);
|
||||
long l = samples.getLowest();
|
||||
long m = samples.getMedian();
|
||||
long a = samples.getAverage();
|
||||
long h = samples.getHighest();
|
||||
|
||||
Serial.print(millis());
|
||||
Serial.print("\t");
|
||||
Serial.print(x);
|
||||
Serial.print("\t");
|
||||
Serial.print(l);
|
||||
Serial.print("\t");
|
||||
Serial.print(a);
|
||||
Serial.print("\t");
|
||||
Serial.print(m);
|
||||
Serial.print("\t");
|
||||
Serial.println(h);
|
||||
delay(100);
|
||||
}
|
||||
|
||||
// -- END OF FILE --
|
||||
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// FILE: RunningMedian2.ino
|
||||
// AUTHOR: Rob Tillaart ( kudos to Sembazuru)
|
||||
// VERSION: 0.1.2
|
||||
// PURPOSE: demo most functions
|
||||
// DATE: 2013-10-17
|
||||
// URL: https://github.com/RobTillaart/RunningMedian
|
||||
//
|
||||
|
||||
#include "RunningMedian.h"
|
||||
|
||||
RunningMedian samples = RunningMedian(100);
|
||||
|
||||
long count = 0;
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.print(F("Running Median Version: "));
|
||||
Serial.println(RUNNING_MEDIAN_VERSION);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
test1();
|
||||
}
|
||||
|
||||
void test1()
|
||||
{
|
||||
if (count % 20 == 0)
|
||||
{
|
||||
Serial.println(F("\nmsec \tAnR \tSize \tCnt \tLow \tAvg \tAvg(7) \tAvg(3) \tMed \tHigh \tPre(1) \tPre(2)"));
|
||||
}
|
||||
count++;
|
||||
|
||||
long x = analogRead(A0);
|
||||
|
||||
samples.add(x);
|
||||
|
||||
float l = samples.getLowest();
|
||||
float m = samples.getMedian();
|
||||
float a = samples.getAverage();
|
||||
float a7 = samples.getAverage(7);
|
||||
float a3 = samples.getAverage(3);
|
||||
float h = samples.getHighest();
|
||||
int s = samples.getSize();
|
||||
int c = samples.getCount();
|
||||
float p1 = samples.predict(1);
|
||||
float p2 = samples.predict(2);
|
||||
|
||||
Serial.print(millis());
|
||||
Serial.print('\t');
|
||||
Serial.print(x);
|
||||
Serial.print('\t');
|
||||
Serial.print(s);
|
||||
Serial.print('\t');
|
||||
Serial.print(c);
|
||||
Serial.print('\t');
|
||||
Serial.print(l);
|
||||
Serial.print('\t');
|
||||
Serial.print(a, 2);
|
||||
Serial.print('\t');
|
||||
Serial.print(a7, 2);
|
||||
Serial.print('\t');
|
||||
Serial.print(a3, 2);
|
||||
Serial.print('\t');
|
||||
Serial.print(m);
|
||||
Serial.print('\t');
|
||||
Serial.print(h);
|
||||
Serial.print('\t');
|
||||
Serial.print(p1, 2);
|
||||
Serial.print('\t');
|
||||
Serial.println(p2, 2);
|
||||
|
||||
delay(100);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
//
|
||||
// FILE: RunningMedianQuantileTest.ino
|
||||
// AUTHOR: f-s ( derived from Rob Tillaart )
|
||||
// VERSION: 0.1.2
|
||||
// PURPOSE: demo basic quantile usage
|
||||
// DATE: 2020-09-02
|
||||
// URL: https://github.com/RobTillaart/RunningMedian
|
||||
//
|
||||
|
||||
#include <RunningMedian.h>
|
||||
|
||||
RunningMedian samples = RunningMedian(5);
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.print("Running Median Version: ");
|
||||
Serial.println(RUNNING_MEDIAN_VERSION);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
test1();
|
||||
}
|
||||
|
||||
void test1()
|
||||
{
|
||||
int x = analogRead(A0);
|
||||
|
||||
samples.add(x);
|
||||
// calculate the 5% quantile => 0.05
|
||||
long q = samples.getQuantile(0.05);
|
||||
|
||||
Serial.print(millis());
|
||||
Serial.print("\t");
|
||||
Serial.println(q);
|
||||
delay(100);
|
||||
}
|
||||
|
||||
// -- END OF FILE --
|
||||
@@ -0,0 +1,163 @@
|
||||
//
|
||||
// FILE: runningMedianTest1.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.1
|
||||
// PURPOSE: test functionality
|
||||
// DATE: 2013-10-28
|
||||
// URL: https://github.com/RobTillaart/RunningMedian
|
||||
//
|
||||
|
||||
#include <RunningMedian.h>
|
||||
|
||||
const int sourceData[] =
|
||||
{ // 50 consecutive samples from Sharp distance sensor model GP2Y0A710K0F while stationary.
|
||||
300, 299, 296, 343, 307, 304, 303, 305, 300, 340,
|
||||
308, 305, 300, 304, 311, 304, 300, 300, 304, 304,
|
||||
284, 319, 306, 304, 300, 302, 305, 310, 306, 304,
|
||||
308, 300, 299, 304, 300, 305, 307, 303, 326, 311,
|
||||
306, 304, 305, 300, 300, 307, 302, 305, 296, 300
|
||||
};
|
||||
const int sourceSize = (sizeof(sourceData)/sizeof(sourceData[0]));
|
||||
|
||||
RunningMedian samples = RunningMedian(sourceSize);
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
while (!Serial); // Wait for serial port to connect. Needed for Leonardo only.
|
||||
delay(1000); // Simply to allow time for the ERW versions of the IDE time to automagically open the Serial Monitor. 1 second chosen arbitrarily.
|
||||
Serial.print(F("Running Median Version: "));
|
||||
Serial.println(RUNNING_MEDIAN_VERSION);
|
||||
|
||||
|
||||
#ifdef RUNNING_MEDIAN_USE_MALLOC
|
||||
Serial.println(F("Dynamic version using malloc() enabled"));
|
||||
#else
|
||||
Serial.print(F("Static version, will always allocate an array of "));
|
||||
Serial.print(MEDIAN_MAX_SIZE, DEC);
|
||||
Serial.println(F(" floats."));
|
||||
#endif
|
||||
|
||||
test1();
|
||||
|
||||
Serial.println("\ndone..\n");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
}
|
||||
|
||||
void test1()
|
||||
{
|
||||
uint32_t start = 0;
|
||||
uint32_t stop = 0;
|
||||
float result = 0;
|
||||
|
||||
Serial.print(F("Requested median array size = "));
|
||||
Serial.println(sourceSize);
|
||||
Serial.print(F(" Actual allocated size = "));
|
||||
Serial.println(samples.getSize());
|
||||
Serial.println();
|
||||
|
||||
// 50 iterations !!
|
||||
for (uint8_t i = 0; i <= (sourceSize - 1); i++)
|
||||
{
|
||||
Serial.print(F("Loop number : "));
|
||||
Serial.println(i + 1);
|
||||
|
||||
start = micros();
|
||||
samples.add(sourceData[i]);
|
||||
stop = micros();
|
||||
Serial.print(F("Time to add the next element to the array = "));
|
||||
Serial.println(stop - start);
|
||||
|
||||
|
||||
Serial.println(F("Cumulative source data added:"));
|
||||
Serial.print(F(" "));
|
||||
for (uint8_t j = 0; j <= i; j++)
|
||||
{
|
||||
Serial.print(sourceData[j]);
|
||||
Serial.print(F(" "));
|
||||
}
|
||||
Serial.println();
|
||||
|
||||
|
||||
Serial.println(F("Unsorted accumulated array:"));
|
||||
Serial.print(F(" "));
|
||||
for (uint8_t j = 0; j < samples.getCount(); j++)
|
||||
{
|
||||
Serial.print(samples.getElement(j));
|
||||
Serial.print(F(" "));
|
||||
}
|
||||
Serial.println();
|
||||
|
||||
|
||||
start = micros();
|
||||
result = samples.getSortedElement(0);
|
||||
stop = micros();
|
||||
Serial.print(F("Time to sort array and return element number zero = "));
|
||||
Serial.println(stop - start);
|
||||
|
||||
|
||||
Serial.println(F("Sorted accumulated array:"));
|
||||
Serial.print(F(" "));
|
||||
for (uint8_t j = 0; j < samples.getCount(); j++)
|
||||
{
|
||||
Serial.print(samples.getSortedElement(j));
|
||||
Serial.print(F(" "));
|
||||
}
|
||||
Serial.println();
|
||||
|
||||
|
||||
start = micros();
|
||||
result = samples.getMedian();
|
||||
stop = micros();
|
||||
Serial.print(F("getMedian() result = "));
|
||||
Serial.println(result);
|
||||
Serial.print(F("Time to execute getMedian() = "));
|
||||
Serial.println(stop - start);
|
||||
|
||||
|
||||
start = micros();
|
||||
result = samples.getAverage();
|
||||
stop = micros();
|
||||
Serial.print(F("getAverage() result = "));
|
||||
Serial.println(result);
|
||||
Serial.print(F("Time to execute getAverage() = "));
|
||||
Serial.println(stop - start);
|
||||
|
||||
|
||||
Serial.println(F("getAverage(x) results where:"));
|
||||
for (uint8_t j = 1; j <= samples.getCount(); j++)
|
||||
{
|
||||
start = micros();
|
||||
result = samples.getAverage(j);
|
||||
stop = micros();
|
||||
Serial.print(F(" x = "));
|
||||
Serial.print(j);
|
||||
Serial.print(F(" => "));
|
||||
Serial.print(result);
|
||||
Serial.print(F(" Time to execute = "));
|
||||
Serial.println(stop - start);
|
||||
}
|
||||
|
||||
Serial.println(F("predict(x) results where:"));
|
||||
for (uint8_t j = 1; j <= (samples.getCount() / 2); j++)
|
||||
{
|
||||
start = micros();
|
||||
result = samples.predict(j);
|
||||
stop = micros();
|
||||
Serial.print(F(" x = "));
|
||||
Serial.print(j);
|
||||
Serial.print(F(" => "));
|
||||
Serial.print(result);
|
||||
Serial.print(F(" Time to execute = "));
|
||||
Serial.println(stop - start);
|
||||
}
|
||||
|
||||
Serial.println();
|
||||
Serial.println();
|
||||
}
|
||||
}
|
||||
|
||||
// -- END OF FILE --
|
||||
@@ -0,0 +1,66 @@
|
||||
//
|
||||
// FILE: RunningMedian_large.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.3
|
||||
// PURPOSE: demo most functions
|
||||
// DATE: 2013-10-17
|
||||
// URL: https://github.com/RobTillaart/RunningMedian
|
||||
//
|
||||
|
||||
#include "RunningMedian.h"
|
||||
|
||||
|
||||
RunningMedian samples = RunningMedian(255);
|
||||
|
||||
|
||||
long count = 0;
|
||||
|
||||
uint32_t start, dur1, dur2, dur3;
|
||||
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.print(F("Running Median Version: "));
|
||||
Serial.println(RUNNING_MEDIAN_VERSION);
|
||||
|
||||
Serial.println(samples.getSize());
|
||||
}
|
||||
|
||||
|
||||
void loop()
|
||||
{
|
||||
if (count < 255)
|
||||
{
|
||||
start = micros();
|
||||
samples.add(256 - count);
|
||||
dur1 = micros() - start;
|
||||
start = micros();
|
||||
count = samples.getCount();
|
||||
dur2 = micros() - start;
|
||||
start = micros();
|
||||
float value = samples.getMedian();
|
||||
dur3 = micros() - start;
|
||||
|
||||
Serial.print(count);
|
||||
Serial.print('\t');
|
||||
Serial.print(dur1);
|
||||
Serial.print('\t');
|
||||
Serial.print(dur2);
|
||||
Serial.print('\t');
|
||||
Serial.print(dur3);
|
||||
Serial.print('\t');
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
if (count == 255)
|
||||
{
|
||||
for (int i = 0; i < 255; i++)
|
||||
{
|
||||
Serial.println(samples.getSortedElement(i));
|
||||
}
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
// -- END OF FILE --
|
||||
Reference in New Issue
Block a user