08.11.2017 Views

arduino_básico_Michael_McRoberts

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

440<br />

Arduino Básico<br />

Em seguida, temos a função addChar. Como parâmetros, você passa a ela o caractere<br />

atualmente lido e a string atual:<br />

void addChar (char ch, char* str) {<br />

Você define dois novos arrays de caracteres e armazena neles as mensagens de erro:<br />

char *tagMsg = "";<br />

char *dataMsg = "-TRUNCATED_DATA-";<br />

Caso você perceba que as strings ultrapassaram o comprimento de MAX_STRING_LEN, terá<br />

de substituí-las por essas mensagens de erro.<br />

Agora, você verifica o comprimento da string para descobrir se ela atingiu o comprimento<br />

máximo:<br />

if (strlen(str) > MAX_STRING_LEN - 2) {<br />

Se isso ocorreu e estivermos atualmente processando uma tag:<br />

if (tagFlag) {<br />

Limpamos a string das tags e copiamos nela a mensagem de erro:<br />

clearStr(tagStr);<br />

strcpy(tagStr,tagMsg);<br />

Se você estiver processando dados, então limpamos a string correspondente e copiamos<br />

para ela a mensagem de erro dos dados:<br />

if (dataFlag) {<br />

clearStr(dataStr);<br />

strcpy(dataStr,dataMsg);<br />

}<br />

Limpamos a string e as tags temporárias:<br />

clearStr(tmpStr);<br />

tagFlag = false;<br />

dataFlag = false;<br />

Caso o comprimento da string não tenha excedido o máximo permitido, você adicionará<br />

à string o caractere atual lido e utilizará o comprimento da string para descobrir<br />

qual o último caractere (ou seja, o próximo ponto no qual você pode adicionar um<br />

caractere).<br />

} else {<br />

// Adiciona um caractere à string<br />

str[strlen(str)] = ch;<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!