Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Korbofos
4 / 4 / 0
Регистрация: 15.08.2011
Сообщений: 153
#1

Writefile() & String - В контроллер приходит не то, что было отправлено - C++

04.08.2014, 01:09. Просмотров 415. Ответов 8
Метки нет (Все метки)

Почему отправляю в com порт "Device?\n" а в котроллер приходит "ppDevice?\n" ????
C++
1
2
3
4
5
6
7
8
9
10
11
12
void Com::Send_package(String str)
{
char *ptr=str.c_str(), c; uint8_t write_len=0; unsigned long cap;
while(c!='\n')
     {
      c=*ptr++;
      write_len++;
     }
if(!WriteFile(COMport, str.c_str(), write_len, &cap, NULL))error=10;
}
 
c->Send_package("Device?\n");
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2014, 01:09     Writefile() & String - В контроллер приходит не то, что было отправлено
Посмотрите здесь:

В чём разница между возвратом "string" и "const string&" & - C++
class test { public: test(const string& text) { this->text = text; } string getText() { return text;

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ? - C++
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool ? bool true(const string &str) и что дает это...

(const string &) - C++
Есть класс class Someclass { public: Someclass( const string &one ) { cout << one; } };

String & Series - C++
У меня есть 2 задачи: 1.Дана строка. Подсчитать количество содержащихся в ней цифр. #include <stdio.h> #include <math.h> void main() ...

Возврат std::string& - C++
string& foo(const string &s) { return string(s); } ... string str = foo("test"); //Необработанное исключение по адресу...

Что значат && и || - C++
Вроде бы результат кода один и тот же первый код #include <stdio.h> #define MAX_STRING_SIZE 20 int main() { FILE *pFile;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6290 / 5893 / 1911
Регистрация: 18.12.2011
Сообщений: 15,132
Завершенные тесты: 1
04.08.2014, 09:07     Writefile() & String - В контроллер приходит не то, что было отправлено #2
На вскидку - у контроллера такой бзик.
Попробуйте в начале послать ему пару нулей, или ff
SatanaXIII
Супер-модератор
Эксперт С++
5594 / 2628 / 240
Регистрация: 01.11.2011
Сообщений: 6,474
Завершенные тесты: 1
04.08.2014, 11:57     Writefile() & String - В контроллер приходит не то, что было отправлено #3
Во-первых непонятно зачем этот гемор, когда можно:
C++
1
if(!WriteFile(COMport, str.c_str(), str.Length(), &cap, NULL))error=10;
Во-вторых поставьте прослушку ком порта и поглядите что действительно там передается - на чьей стороне косяк.
orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
04.08.2014, 20:35     Writefile() & String - В контроллер приходит не то, что было отправлено #4
Цитата Сообщение от Korbofos Посмотреть сообщение
char *ptr=str.c_str(), c;
Что делает эта строчка?
SatanaXIII
Супер-модератор
Эксперт С++
5594 / 2628 / 240
Регистрация: 01.11.2011
Сообщений: 6,474
Завершенные тесты: 1
05.08.2014, 08:24     Writefile() & String - В контроллер приходит не то, что было отправлено #5
Цитата Сообщение от orange_fox Посмотреть сообщение
Что делает эта строчка?
Возьму на себя смелость ответить за тс:
объявляет и инициализирует символьный указатель и не инициализированную переменную.

Да. Стиль во многом уродский, к примеру, в двенадцатой строке c содержит уже какой-то меотд, хотя только что это была пусть и локальная но переменная. Но вопрос тс-то не в этом.
Korbofos
4 / 4 / 0
Регистрация: 15.08.2011
Сообщений: 153
05.08.2014, 16:00  [ТС]     Writefile() & String - В контроллер приходит не то, что было отправлено #6
Разобрался в чём косяк! Когда в ручную через терминал отправлял команды, всё работало хорошо. А когда программа отправляла команды, появлялись "левые" символы. Оказалось косяк в ардуине. После открытия порта необходимо подождать пару секунд
SatanaXIII
Супер-модератор
Эксперт С++
5594 / 2628 / 240
Регистрация: 01.11.2011
Сообщений: 6,474
Завершенные тесты: 1
05.08.2014, 16:09     Writefile() & String - В контроллер приходит не то, что было отправлено #7
Korbofos, Sleep воткните.

Хотя это костыль. Так не должно быть.
Korbofos
4 / 4 / 0
Регистрация: 15.08.2011
Сообщений: 153
05.08.2014, 16:57  [ТС]     Writefile() & String - В контроллер приходит не то, что было отправлено #8
Так и сделал Sleep. Ардуинка как я понял, при открытии порта перезапускается. Приходиться ждать, иначе глючит. Уменьшил ожидание до 300 миллисекунд работает нормально, меньше ерундит.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2014, 08:30     Writefile() & String - В контроллер приходит не то, что было отправлено
Еще ссылки по теме:

Поясните синтаксис - ( std::string& x: bar ) - C++
Наткнулся здесь на использование двоеточия для какого-то рода инициализации ссылки, но не понимаю ни синтаксиса, ни механизма работы: ...

Выводится не то, что было введено - C++
Доброго всем вечера. Данная программа должна сначала получать данные от человека и заносить их в матрицу, а затем выводить полученные...

объясните пожалйста что вот это значит: a[1]=COD[input&0x0f]; b[0]=COD[(input>>4)&0x0f];??? - C++
Доброй ночи);) char COD={0b00000000, 0b00001011, 0b00010110, 0b00011101, 0b00100111, 0b00101100, 0b00110001,...

Возвращается не то, что было помещено в массив - C++
#include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { setlocale(0, ""); char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
5594 / 2628 / 240
Регистрация: 01.11.2011
Сообщений: 6,474
Завершенные тесты: 1
06.08.2014, 08:30     Writefile() & String - В контроллер приходит не то, что было отправлено #9
Korbofos, может она что-нибудь шлет, когда перезагрузится? Типа там Ready какой-нибудь.
Должно что-то быть. Прослушайте порт - поищите.
Yandex
Объявления
06.08.2014, 08:30     Writefile() & String - В контроллер приходит не то, что было отправлено
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru