add analog Read/Write and RCDecimal

This commit is contained in:
Stefan Sterz 2016-01-25 22:02:42 +01:00
parent f3d68c374e
commit 1afb6e6588
2 changed files with 37 additions and 9 deletions

View File

@ -82,11 +82,11 @@ Followed by six byte long value
- [x] 81 - Q - set pin mode
- [x] 82 - R - digital write
- [x] 83 - S - digital read
- [ ] 84 - T - analog write
- [ ] 85 - U - analog read
- [ ] 86 - V - handle RC Decimal
- [x] 84 - T - analog write
- [x] 85 - U - analog read
- [x] 86 - V - handle RC Decimal
- [x] 87 - W - handle RC TriState
- [ ] 88 - X - handle IR send
- [x] 88 - X - handle IR send
- [x] 89 - Y - handle IR read
## Special Command

View File

@ -53,11 +53,11 @@ void decodeMessage() {
switch (cmd) {
//case 80: break;
case 81: setMode(val[0], pin); break;
case 82: digitalW(val[0], pin); break;
case 83: digitalR(pin); break;
//case 84: break;
//case 85: break;
case 81: setMode(val[0], pin); break;
case 82: digitalW(val[0], pin); break;
case 83: digitalR(pin); break;
case 84: analogW(pin, val) break;
case 85: analogR(pin) break;
//case 86: break;
case 87: sendRCTristate(val, pin); break;
//case 88: break;
@ -115,6 +115,34 @@ void digitalR(int pin) {
}
void analogW(uint8_t val[], int pin) {
if(p == -1) { if(debug) Serial.println("badpin"); return; }
pinMode(p, OUTPUT);
analogWrite(p,(256*val[0])+val[1]);
}
void analogR(int pin) {
if(p == -1) { Serial.println("badpin"); return; }
pinMode(p, INPUT);
int rval = analogRead(p);
Serial.println(String(pin + "::" + rval));
}
void handleRCDecimal(uint8_t val[], int pin) {
if (p == -1) { Serial.println("badpin"); return; }
unsigned int length =(val[0]*256)+val[1];
unsigned long value =(val[2]*16777216)+(val[3]*65536)+(val[4]*256)+val[5];
RCSwitch rc = RCSwitch();
rc.enableTransmit(p);
rc.send(value, length);
}
void sendRCTristate (uint8_t val[], int pin) {
if(pin == -1) { Serial.println("badpin"); return; }