1

Topic: Device not reply. Recive time out error.

Работаю с контроллером TI CC1310. По UART (REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT) контроллер выходит на опрос wifi модуля (Wroom-02) с <AT> командой , которая только на 3 <OK> реагирует.
Сеть поднимается, сервер запускается, в отладчике (ECLIPS)  вижу приходит команда от смартфона ( предварительно провел аутентификацию), которая организуется с приложения RemoteXY. Должны поступить данные массива (графический инструментарий и его размещение), но данные не поступают и на смарфоне после длительного ожидания с вращающимся колесико на экране вылетает ошибка. Что не так?

2

Re: Device not reply. Recive time out error.

#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT
#include <RemoteXY.h>
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 115200
#define REMOTEXY_WIFI_SSID "RemXYWiFI"
#define REMOTEXY_WIFI_PASSWORD "12345678"
#define REMOTEXY_SERVER_PORT 6377
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = {3, 14, 51, 0, 8, 13, 1, 4, 64, 1, 1, 17, 98, 2, 26, 4, 32, 45, 2, 17, 97, 2, 26, 2, 0, 24, 7, 16, 17, 2, 26, 31, 31, 79, 70, 70, 0, 79, 78, 0, 65, 15, 22, 41, 20, 20, 67, 4, 24, 72, 17, 10, 2, 26, 11};
struct {
  signed char vol;
  signed char balance;
  unsigned char switch_1;
  unsigned char led_1_r;
  unsigned char led_1_g;
  unsigned char led_1_b;
  char text_1[11];
  unsigned char connect_flag;
} RemoteXY;
#pragma pack(pop)
bool _gtv2;
bool _gtv1;
bool _gtv3;
bool _gtv4;
bool _gtv5;
int _gtv6;
bool _gtv7;
bool _gtv8;
int _gtv9;
bool _count1I = 0;
int _count1P = 0;
int _swi2;
bool _count3I = 0;
int _count3P = 0;
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
bool _gen3I = 0;
bool _gen3O = 0;
unsigned long _gen3P = 0UL;
int _swi1;
bool _gen2I = 0;
bool _gen2O = 0;
unsigned long _gen2P = 0UL;
bool _count2I = 0;
int _count2P = 0;
void setup()
{
  RemoteXY_Init ();
}
void loop()
{ RemoteXY_Handler  ();

3 (edited by sergeykinsky 2018-05-27 23:41:25)

Re: Device not reply. Recive time out error.

RemoteXY_AT.h
...
protected: 
  uint8_t waitATAnswer (const char * answer, uint16_t delay) {
    uint8_t b;
    uint32_t timeOut = millis();
 
    uint8_t k=0;
    while (millis() - timeOut <= delay) {
   
   
      if (serial->available ()>0) {
        b=serial->read  ();
#if defined(REMOTEXY__DEBUGLOGS)
        REMOTEXY__DEBUGLOGS.write (b);
#endif
        if (b==10) continue;
        if (b==13) {
          bufferAT[k++]=0;
          k=0;
          if (strcmp (bufferAT,answer)==0) return 1;
          if (strcmp (bufferAT,AT_ANSWER_ERROR)==0) return 0;
          if (cmpBufferAT () ==  AT_MESSAGE_READY) return 0;   // здесь может правильней будет "return 1;" ???   
        }
        else {
          if (k<AT_BUFFER_STR_LENGTH) bufferAT[k++]=b;
          if (b=='>') {
            if (answer==AT_ANSWER_GO) return 1;
          }
        }
      }
    }
    return 0; 
  }
...