add analog Read/Write and RCDecimal

This commit is contained in:
Shannon 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] 81 - Q - set pin mode
- [x] 82 - R - digital write - [x] 82 - R - digital write
- [x] 83 - S - digital read - [x] 83 - S - digital read
- [ ] 84 - T - analog write - [x] 84 - T - analog write
- [ ] 85 - U - analog read - [x] 85 - U - analog read
- [ ] 86 - V - handle RC Decimal - [x] 86 - V - handle RC Decimal
- [x] 87 - W - handle RC TriState - [x] 87 - W - handle RC TriState
- [ ] 88 - X - handle IR send - [x] 88 - X - handle IR send
- [x] 89 - Y - handle IR read - [x] 89 - Y - handle IR read
## Special Command ## Special Command

View file

@ -53,11 +53,11 @@ void decodeMessage() {
switch (cmd) { switch (cmd) {
//case 80: break; //case 80: break;
case 81: setMode(val[0], pin); break; case 81: setMode(val[0], pin); break;
case 82: digitalW(val[0], pin); break; case 82: digitalW(val[0], pin); break;
case 83: digitalR(pin); break; case 83: digitalR(pin); break;
//case 84: break; case 84: analogW(pin, val) break;
//case 85: break; case 85: analogR(pin) break;
//case 86: break; //case 86: break;
case 87: sendRCTristate(val, pin); break; case 87: sendRCTristate(val, pin); break;
//case 88: 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) { void sendRCTristate (uint8_t val[], int pin) {
if(pin == -1) { Serial.println("badpin"); return; } if(pin == -1) { Serial.println("badpin"); return; }