本文整理汇总了C++中DataStream::available方法的典型用法代码示例。如果您正苦于以下问题:C++ DataStream::available方法的具体用法?C++ DataStream::available怎么用?C++ DataStream::available使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DataStream
的用法示例。
在下文中一共展示了DataStream::available方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: networkScan
int networkScan() {
uint8_t index=0;
char endofinput[]="No.Of AP Found:";
char nfound[4]="0";
uint8_t ch='0';
radio.discard();
radio.printf("\r\n");
radio.discard();
radio.printf("\r\nAT+WS\r\n");
while (!radio.available()); // and some timeout.
while ((index<15)){
while (radio.available()) {
console.putChar(ch=(char) radio.read());
if ((ch=='\n')||(ch=='\r')) index=0;
if (ch==endofinput[index]) index++;
}
}
while (!radio.available()); // and some timeout.
ch='\0'; index=0;
while ((index<4)&&(ch!='\r')&&(ch!='\n')){
while(radio.available()) {
console.putChar(ch=(char) radio.read());
if (isdigit(ch)) nfound[index++]=ch;
}
}
radio.discard();
console.printf("\r\n");
nfound[index]='\0';
return(atoi(nfound));
}
示例2: handleConsoleInput
void handleConsoleInput() {
uint8_t retval;
uint8_t index=0;
uint8_t ch='0';
switch (console.keyValue()) {
case _NSC_:
console.printf("SOD:\r\n");
retval=networkScan();
console.printf("EOD:\r\n");
console.printf("\nDBG: found=%d\r\n",retval);
break;
case _NJN_:
//console.printf("SOD:\r\n");
retval=networkJoin(console.arguments());
//console.printf("EOD:\r\n");
console.printf("\nDBG: joined=%s\r\n",retval?"TRUE":"FALSE");
break;
case _NPW_:
//console.printf("SOD:\r\n");
retval=networkSetPassword(console.arguments());
//console.printf("EOD:\r\n");
console.printf("\nDBG: pwd set=%s\r\n",retval?"TRUE":"FALSE");
break;
case _NST_:
retval=networkStatus();
console.printf("NST: %s\r\n",retval?"CONNECTED":"NOT CONNECTED");
break;
case _TPT_:
toTheEthers(1, console.arguments());
break;
case _TX2_:
radio.printf("%s",console.arguments());
index=0;
// delay(1000);
while (radio.available()) {
inBuffer[index++]=ch=radio.read();
if( index>= 99 || ((ch== '\n') || ch !='\r')) {
inBuffer[index]='\0';
console.puts(inBuffer);
index=0;
delay(100);
}
}
inBuffer[index]='\0';
console.puts(inBuffer);
console.puts((char *) "\r\n");
break;
case _PKY_:
strncpy(pachubeKey, console.arguments(), MAX_PATCHUBE_KEY_LENGHT-1);
stripcrlf(pachubeKey);
break;
default:
console.printf("DBG: forwarding (%s) to device\r\n",console.key());
//device.puts("\r\n");
break;
}
}
示例3: pachubeDate
/*-----------------------------------------------------------------pachubeDate()
* pull date from pachube server
*----------------------------------------------------------------------------*/
int pachubeDate() {
uint8_t n,index=0;
int retval=0;
char databuffer[36];
char cid[4]="0";
bool gotResponse=false;
enum {CONNECT, ERROR, DISASSOCIATED} status=ERROR;//statii;
uint8_t ch='0';
if (!hasWifiModule) return retval;
radio.discard();
radio.printf("\r\n");
radio.discard();
radio.printf("\r\nAT+NCTCP=216.52.233.122,80\r\n");
while (!radio.available()); // and some timeout.
// ERROR
// CONNECT <CID>
// DISASSOCIATED
digitalWrite(ORN_LED,LOW);
while (!gotResponse){ // this needs to catch errors.
while (radio.available()) {
databuffer[index]=ch=(char) radio.read();
if (index<36) index++;
//console.putChar(ch);
if ((ch=='\n')||(ch=='\r')) {
databuffer[index]='\0';
if (strncmp("CONNECT", databuffer,6)==0) {
if (index>7) {
for (index=0, n=8; index<3 && databuffer[n];) {
cid[index++]=databuffer[n++]; // if isdigit????
}
cid[index]='\0';
}
status=CONNECT;
gotResponse=true;
console.debug("Connect CID=%s\r\n",cid);
} else if (strncmp("ERROR", databuffer,5)==0) {
gotResponse=true;
status=ERROR;
} else if (strncmp("DISASSOCIATED",databuffer,index)==0) {
gotResponse=true;
status=DISASSOCIATED;
}
index=0;
}
}
}
digitalWrite(ORN_LED,HIGH);
if (status!=CONNECT) {
console.debug("toPachube NOT CONNECTED! (%d) Exiting\r\n", status);
radio.discard();
return(0);
}
//snprintf(databuffer, 36, "%d,%s",key,value);
radio.printf("\033S%dHEAD / HTTP/1.1\r\n",atoi(cid),pachubeFeed);
radio.printf("User-Agent: SuspectDevices/Baco-matic5000 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15\r\n");
radio.printf("Host: api.pachube.com\r\nAccept: */*\r\nConnection: close\r\n");
radio.printf("X-PachubeApiKey: %s\r\n",pachubeKey);
radio.printf("Content-Length: 0\r\n\r\n\r\n\033E",strlen(databuffer),databuffer);
//console.debug("Sending Head / request\r\n");
//
// sent data then wait for an OK
//
while (!radio.gotLine());
while (!(retval=isErrorOrOK(radio.line()))){
//console.debug("%s\r\n",radio.line());
while (!radio.gotLine()) {
;
}
}
if (retval<1) {
console.debug("NOT OK! %s\r\n",radio.line());
radio.discard();
return(0);
}
//
// should get an escaped stream followed by a disconnect
//
index=0;
gotResponse=false;
digitalWrite(ORN_LED,LOW);
while (!radio.gotLine());
sprintf(databuffer,"%c%c%c%c%cS%dHTTP",0x1b,0x4f,0x1b,0x4f,0x1b,atoi(cid));
if(!strncmp(databuffer, radio.line(),strlen(databuffer)) ) {
databuffer[0]=radio.line()[16];
databuffer[1]=radio.line()[17];
databuffer[2]=radio.line()[18];
//.........这里部分代码省略.........
示例4: handleConsoleInput
void handleConsoleInput() {
uint8_t retval;
uint8_t index=0;
uint8_t ch='0';
SdFile finger;
switch (console.keyValue()) {
case _DIR_:
console.printf("SOD:\r\n");
root.ls(LS_DATE | LS_SIZE);
console.printf("EOD:\r\n");
break;
case _LSV_:
console.printf("LSV:" BOM_VERSION "\r\n");
break;
case _TYP_:
typeFile(console.arguments());
break;
case _NSC_:
console.printf("SOD:\r\n");
retval=networkScan();
console.printf("EOD:\r\n");
console.printf("\nDBG: found=%d\r\n",retval);
break;
case _NJN_:
//console.printf("SOD:\r\n");
retval=networkJoin(console.arguments());
//console.printf("EOD:\r\n");
console.printf("\nDBG: joined=%s\r\n",retval?"TRUE":"FALSE");
break;
case _NPW_:
//console.printf("SOD:\r\n");
retval=networkSetPassword(console.arguments());
//console.printf("EOD:\r\n");
console.printf("\nDBG: pwd set=%s\r\n",retval?"TRUE":"FALSE");
break;
case _NST_:
retval=networkStatus();
console.printf("NST: %s\r\n",retval?"CONNECTED":"NOT CONNECTED");
break;
case _FMT_: // there really should be some REALLY do you mean this here but.....
root.openRoot(&volume);
if (finger.open(&root, ".", O_WRITE|O_READ)) {
console.printf("\nDBG: Opened / \r\n");
finger.rmRfStar();
} else {
console.printf("\nDBG: FAIL \r\n");
}
break;
case _TPT_:
toPachube(1, console.arguments());
break;
case _TX2_:
radio.printf("%s",console.arguments());
index=0;
// delay(1000);
while (radio.available()) {
inBuffer[index++]=ch=radio.read();
if( index>= 99 || ((ch== '\n') || ch !='\r')) {
inBuffer[index]='\0';
console.puts(inBuffer);
index=0;
delay(100);
}
}
inBuffer[index]='\0';
console.puts(inBuffer);
console.puts((char *) "\r\n");
break;
// set to one to test output for.
#if 1
case _TS1_: toPachube(0, console.arguments()); break;
case _TS2_: toPachube(1, console.arguments()); break;
case _TS3_: toPachube(2, console.arguments()); break;
case _TS4_: toPachube(3, console.arguments()); break;
case _TS5_: toPachube(4, console.arguments()); break;
case _FAN_: toPachube(5, console.arguments()); break;
case _CHL_: toPachube(6, console.arguments()); break;
case _STC_: toPachube(7, console.arguments()); break;
#endif
case _PKY_:
strncpy(pachubeKey, console.arguments(), MAX_PATCHUBE_KEY_LENGHT-1);
stripcrlf(pachubeKey);
break;
case _PFD_:
strncpy(pachubeFeed, console.arguments(), MAX_PATCHUBE_FEED_LENGHT-1);
stripcrlf(pachubeFeed);
break;
case _SGT_ :
readSettings();
break;
case _SSV_ :
writeSettings();
break;
default:
console.printf("DBG: forwarding (%s) to device\r\n",console.key());
device.puts(console.line());
//.........这里部分代码省略.........
示例5: toTheEthers
int toTheEthers(int key, char * value) {
uint8_t n,index=0;
int retval=0;
char databuffer[36];
char cid[4]="0";
bool gotResponse=false;
enum {CONNECT, ERROR, DISASSOCIATED} status=ERROR;//statii;
uint8_t ch='0';
if (!hasWifiModule) return retval;
radio.discard();
radio.printf("\r\n");
radio.discard();
radio.printf("\r\nAT+NCTCP=198.202.31.182,80\r\n");
while (!radio.available()); // and some timeout.
// ERROR
// CONNECT <CID>
// DISASSOCIATED
digitalWrite(ORN_LED,LOW);
while (!gotResponse){ // this needs to catch errors.
while (radio.available()) {
databuffer[index]=ch=(char) radio.read();
if (index<36) index++;
//console.putChar(ch);
if ((ch=='\n')||(ch=='\r')) {
databuffer[index]='\0';
if (strncmp("CONNECT", databuffer,6)==0) {
if (index>7) {
for (index=0, n=8; index<3 && databuffer[n];) {
cid[index++]=databuffer[n++]; // if isdigit????
}
cid[index]='\0';
}
status=CONNECT;
gotResponse=true;
//console.printf("DBG: Connect CID=%s\r\n",cid);
} else if (strncmp("ERROR", databuffer,5)==0) {
gotResponse=true;
status=ERROR;
} else if (strncmp("NOT ASSOCIATED",databuffer,13)==0) {
gotResponse=true;
status=DISASSOCIATED;
} else if (strncmp("DISASSOCIATED",databuffer,13)==0) {
gotResponse=true;
status=DISASSOCIATED;
}
index=0;
}
}
}
digitalWrite(ORN_LED,HIGH);
if (status!=CONNECT) {
console.printf("DBG: toPachube() NOT CONNECTED! (%d) Exiting\r\n", status);
radio.discard();
return(0);
}
//snprintf(databuffer, 36, "%d,%s",key,value);
radio.printf("\033S%dGET /art2013/swls/&state=%s HTTP/1.1\r\n",atoi(cid),value?"ON" : "OFF");
//radio.printf("\033S%dPUT /art2013/swls/%s.csv HTTP/1.1\r\n",atoi(cid));
radio.printf("User-Agent: SuspectDevices/Baco-matic5000 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15\r\n");
radio.printf("Host: suspectdevices.com\r\nAccept: */*\r\nConnection: close\r\n");
radio.printf("X-PachubeApiKey: %s\r\n\r\n",pachubeKey);
//radio.printf("Content-Length: %d\r\n\r\n%s\r\n\033E",strlen(databuffer),databuffer);
//console.printf("DBG: Sending to feed %s: (%d)%s \r\n",pachubeFeed,strlen(databuffer),databuffer);
//
// sent data, wait for an OK
//
while (!radio.gotLine());
while (!(retval=isErrorOrOK(radio.line()))){
//console.printf("DBG: %s\r\n",radio.line());
while (!radio.gotLine()) {
;
}
}
if (retval<1) {
console.printf("DBG: NOT OK! %s\r\n",radio.line());
radio.discard();
return(0);
}
//
// should get an escaped stream followed by a disconnect
//
index=0;
gotResponse=false;
digitalWrite(ORN_LED,LOW);
while (!radio.gotLine());
sprintf(databuffer,"%c%c%c%c%cS%dHTTP",0x1b,0x4f,0x1b,0x4f,0x1b,atoi(cid)); // the double escapeing I dont get.
if(!strncmp(databuffer, radio.line(),strlen(databuffer)) ) {
databuffer[0]=radio.line()[16];
databuffer[1]=radio.line()[17];
//.........这里部分代码省略.........