void AndroidBluetooth::listen() { if(available()){//check if there's any data sent from the remote bluetooth shield recvChar = read(); // Serial.print(recvChar); if(message.length() < MESSAGE_LENGTH) { message.concat(recvChar); } } else if(message.length() > 0){ if(message.indexOf("+BTSTATE:1") >= 0) { state = DISCONNECTED; if(onDisconnect) onDisconnect(); } else if(message.indexOf("+BTSTATE:4") >= 0) { state = CONNECTED; if(onConnect) onConnect(); String temp = "blpins:D"; temp.concat(rxPin); temp.concat("&D"); temp.concat(txPin); send(temp); temp = ""; } else if(message.indexOf("+BTSTATE:3") >= 0) { } else if(message.indexOf("CONNECT:OK") >= 0) { } else if(message.indexOf("ERROR") >= 0) { } else if(message.indexOf("pRQST") >= 0) { //Get Type Analog vs Digital (message.charAt(5) == 'A') ? type = 1 : type = 0; //Get state HIGH vs LOW if(message.indexOf("false") >= 0) isHigh = 0; else isHigh = 1; //Get Pin Number char *buffer = {"h"}; message.substring(6,8).toCharArray(buffer, 3); pin = atoi(buffer); //Send data to callback if(onPin) onPin(type, pin, isHigh); if(type == 0) { Serial.print("Requested:"); Serial.print("Digital Pin "); Serial.print(pin); Serial.print(" to "); if(isHigh) Serial.println("HIGH"); else Serial.println("LOW"); } else { send((String)analogRead(pin)); Serial.print("Analog Pin "); Serial.print(pin); Serial.print(" Read "); Serial.println(analogRead(pin)); } buffer = NULL; } else if (onData) onData(message); message = ""; } }
PinMessageBox::PinMessageBox(ChannelData *channel, MsgId msgId) : AbstractBox(st::boxWidth) , _channel(channel) , _msgId(msgId) , _text(this, lang(lng_pinned_pin_sure), FlatLabel::InitType::Simple, st::boxLabel) , _notify(this, lang(lng_pinned_notify), true, st::defaultBoxCheckbox) , _pin(this, lang(lng_pinned_pin), st::defaultBoxButton) , _cancel(this, lang(lng_cancel), st::cancelBoxButton) { _text.resizeToWidth(st::boxWidth - st::boxPadding.left() - st::boxButtonPadding.right()); setMaxHeight(st::boxPadding.top() + _text.height() + st::boxMediumSkip + _notify.height() + st::boxPadding.bottom() + st::boxButtonPadding.top() + _pin.height() + st::boxButtonPadding.bottom()); connect(&_pin, SIGNAL(clicked()), this, SLOT(onPin())); connect(&_cancel, SIGNAL(clicked()), this, SLOT(onClose())); }