Помогите с текстовыми строками.

Sts
Offline
Зарегистрирован: 22.06.2015

Привет всем !
Помогите разобраться со строками в IDE

Суть такая :

#include <...>

const char _s_str5[]= "System : Error command. Call :";
...
void setup()
{ ... }

void loop {
char textSMS[128];
char *accesseNum = "+7123456789";
...

memset(textSMS,(char)0,sizeof(textSMS));
strcpy(textSMS,_s_str5);
strcat(textSMS,accesseNum);

m_GSM.sendSMS("+798765432",textSMS);

void m_GSM.sendSMS(const char *,const char *){...}

--------------------------------------------------------------
1. Модем не понимает, что за строка к нему пришла, но хочет ASCII.
2. Serial.print выдает все хорошо: System : "Error command. Call : +798765432"

Пробовал засунуть в String и вернуть String::c_str() - не помогают.

1/ На мой взгляд при инициализации _s_str[5] строкой - это не ASCII
Ведь могу же я в IDE печатать по-китайски, a потом по-вьетнамски.???

Так как быть, если в модем надо засунуть простую строку ASCII

nik182
Offline
Зарегистрирован: 04.05.2015

Можно посмотреть, что выйдет в сериал порт из textSMS после Этого пассажа?

memset(textSMS,(char)0,sizeof(textSMS));
strcpy(textSMS,_s_str5);
strcat(textSMS,accesseNum);

Sts
Offline
Зарегистрирован: 22.06.2015

Serial.print - все нормально.

В Билл Гейтс С++ есть макрос : T("ля-ля-тополя") и я точно знаю, что 1 байт - один символ. А тут у IDE кодировка UTF-8/ И фиг знает, может ОНИ адаптировали strstr strchr ... и т.д. и по 2 байта на символ.

Почему спрашиваю - модем Neoway 590 плюется сердечками и закарючками в ответ. Или монитор порта ...вот ведь блин. А SMS до адрессата - все норм.

 
Прототип :
 
void GSM_STS::sendSMS(char *nom, char *text)
{
  char str[71];
  memset(str, (char)0,70);
  strcpy(str, "AT+CMGS=\"+7");
  strcat(str, nom);
  strcat(str, "\"\r");
 
  _m_Serial->print(str);
  
  delay(200);
 
  memset(str, (char)0,70);
  strcpy(str, text);
  _m_Serial->print(str);
  _m_Serial->println((char)26);
 
  delay(2000);
}
 
а вот чего происходит в мониторе :
 
          GSM_STS: Start - Ok
         +CMT: "+7963123456",,"16/10/18,23:26:12+18" :admin? 
          :ADMIN? ( это такая команда на выполнение )
отправляем SMS и эхо воращает команду
          AT+CMGS="+7963123456" > Sж•µЃ «+ЛЦ.®]№·m. ЃЩєєЉ004
        +CMGS: 237 OK