Some small updates

This commit is contained in:
Ziver Koc 2016-05-18 17:06:34 +02:00
parent df6feb5597
commit 5f0800897c
5 changed files with 22 additions and 14 deletions

View file

@ -51,7 +51,7 @@ based on Christopher Laws, March, 2013 code.
void SensorBH1750::setup() { void SensorBH1750::setup() {
Wire.begin(); Wire.begin();
configure(BH1750_CONTINUOUS_HIGH_RES_MODE); configure(BH1750_ONE_TIME_HIGH_RES_MODE);
} }

View file

@ -1,18 +1,20 @@
#include "SensorPhotocell.h" #include "SensorPhotocell.h"
#include <Arduino.h> #include <Arduino.h>
void SensorPhotocell::interruptHandler()
{
++pulse;
}
void SensorPhotocell::setup() void SensorPhotocell::setup()
{ {
Interrupt::setCallback(SensorPhotocell::interruptHandler);
Interrupt::setupPinInterrupt(PC2); //PC3 Interrupt::setupPinInterrupt(PC2); //PC3
} }
void SensorPhotocell::read(PowerData& data) void SensorPhotocell::read(PowerData& data)
{ {
data.consumption = pulse; data.consumption = pulse;
}
void SensorPhotocell::reset()
{
pulse = 0; pulse = 0;
} }

View file

@ -10,10 +10,11 @@ class SensorPhotocell : public SensorPowerConsumption
public: public:
virtual void setup(); virtual void setup();
virtual void read(PowerData& data); virtual void read(PowerData& data);
virtual void reset();
private: private:
unsigned int pulse; static unsigned int pulse;
static void interruptHandler();
}; };
#endif // SensorPhotocell_H #endif // SensorPhotocell_H

View file

@ -63,11 +63,13 @@ public class NexaSelfLearning extends TellstickProtocol
public String encode(){ public String encode(){
try { try {
StringBuilder enc = new StringBuilder(); // T[t0][t1][t2][t3][length][d1]..[dn]+
enc.append(new char[]{'T', 127, 255, 24, 1}); StringBuilder enc = new StringBuilder(90); // Tellstick supports max 74 bytes
enc.append((char)132); // length enc.append(new char[]{'T', 127, 255, 24, 0});
enc.append((char)0); // length
enc.append((char)0b0000_1001); // preamble enc.append((char)0b1111_1001); // preamble
int length = 4;
byte[] data = BinaryStructOutputStream.serialize(this); byte[] data = BinaryStructOutputStream.serialize(this);
for (byte b : data){ for (byte b : data){
for (int i=7; i>=0; --i){ for (int i=7; i>=0; --i){
@ -75,8 +77,10 @@ public class NexaSelfLearning extends TellstickProtocol
enc.append((char) 0b1010_1000); // 0b1010_1000 enc.append((char) 0b1010_1000); // 0b1010_1000
else // 1 else // 1
enc.append((char) 0b1000_1010); // 0b1000_1010 enc.append((char) 0b1000_1010); // 0b1000_1010
length += 4;
} }
} }
enc.setCharAt(5, (char)length); // Set calculated length
enc.append("+"); enc.append("+");
return enc.toString(); return enc.toString();

View file

@ -40,9 +40,10 @@ public class NexaSelfLearningTest {
byte[] expected = Converter.toBytes(new char[]{ byte[] expected = Converter.toBytes(new char[]{
84, // T 84, // T
127, 255, 24, 1, 132, // timings 127, 255, 24, 0, // timings
132, // length
9, // preamble 0xF9, // preamble
168, 168, 138, 168, 138, 138, 168, 168, 138, 138, 168, 168, 138, 168, 138, 138, 168, 168, 138, 138,
138, 168, 138, 168, 168, 168, 168, 168, 168, 138, 138, 168, 138, 168, 168, 168, 168, 168, 168, 138,
138, 168, 168, 138, 138, 168, 168, 138, 168, 168, 138, 168, 168, 138, 138, 168, 168, 138, 168, 168,