Преобразовать число в строку
-
- beginner
- Сообщения: 15
- Зарегистрирован: 07 окт 2018, 01:40
- Версия LabVIEW: 2013
- Контактная информация:
Преобразовать число в строку
Здравствуйте участники форума!
Хочу передавать число в COM-порт. Закачал драйверы для VISA, написал простую программку, используя функцию VISA Write.
Приспособил ползунок integer. Подскажите пожалуйста, можно ли преобразовать int в строку? Есть ли готовые функции или надо писать подпрограмму самому?
Хочу передавать число в COM-порт. Закачал драйверы для VISA, написал простую программку, используя функцию VISA Write.
Приспособил ползунок integer. Подскажите пожалуйста, можно ли преобразовать int в строку? Есть ли готовые функции или надо писать подпрограмму самому?
-
- beginner
- Сообщения: 15
- Зарегистрирован: 07 окт 2018, 01:40
- Версия LabVIEW: 2013
- Контактная информация:
Re: Преобразовать число в строку
Спасибо огромное, заработало!
Не пойму только назначение вывода width(-) на иконке Number To Decimal String. Это длина в байтах или в битах? В хелпе сказано "длина в цифрах" (((
Если я отправляю в порт 1 байт unsigned integer, я так понимаю там должна стоять "1" ?
Не пойму только назначение вывода width(-) на иконке Number To Decimal String. Это длина в байтах или в битах? В хелпе сказано "длина в цифрах" (((
Если я отправляю в порт 1 байт unsigned integer, я так понимаю там должна стоять "1" ?
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Преобразовать число в строку
Это количество знаков, нужных на отображение числа. Можете туда ничего не ставить, в Вашем случае проблем не будет.pazitiff25 писал(а):Спасибо огромное, заработало!
Не пойму только назначение вывода width(-) на иконке Number To Decimal String. Это длина в байтах или в битах? В хелпе сказано "длина в цифрах" (((
Если я отправляю в порт 1 байт unsigned integer, я так понимаю там должна стоять "1" ?
А так - например, если Вы хотите, чтобы в файле (или где-то еще) преобразованные числа отображались с одинаковой длинной строки, можете указывать этот параметр. Тогда если "ширина" строки будет равна 2, то числа будут отображаться как 01, 02, 03... 10, 11, и т.д.
Я обычно использую Format Into String функцию, там тоже можно этот параметр задавать, например как %02d, где 02 - ширина строки, d - форматтер числа.
Мы делили апельсин - много наших полегло...
-
- beginner
- Сообщения: 15
- Зарегистрирован: 07 окт 2018, 01:40
- Версия LabVIEW: 2013
- Контактная информация:
Re: Преобразовать число в строку
Спасибо!
Подскажите, а VISA Write может гнать в порт только строки? А обычные десятичные числа не может?
Может есть другие функции связи с портом?
Подскажите, а VISA Write может гнать в порт только строки? А обычные десятичные числа не может?
Может есть другие функции связи с портом?
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Преобразовать число в строку
В конце-концов, все интерпретируется как набор байтов. Но драйвер в принимает строки - и в этом нет никакой проблемы, поверьте. Любой драйвер устройства для серийного порта использует VISA Write. Если Вы посылаете строку с числом, а прибор не реагирует - нужно изучить протокол. Может, число должно быть представлено как hex; может нужно использовать определенный терминирующий символ (конец строки \n, \r, \r\n, и т.д.); может нужно посылать hex-числа в виде нормально строки.
Что конкретно не работает в Вашем случае?
Что конкретно не работает в Вашем случае?
Мы делили апельсин - много наших полегло...
-
- beginner
- Сообщения: 15
- Зарегистрирован: 07 окт 2018, 01:40
- Версия LabVIEW: 2013
- Контактная информация:
Re: Преобразовать число в строку
Передаю данные через виртуальный com-порт в микроконтроллер STM32f767. Микроконтроллер настроен на прием usart rs232.
Я так понимаю, LabView отправляет данные в ascii-коде. Не разберу, как потом перевести ascii-код числа в обычное число.
Я так понимаю, LabView отправляет данные в ascii-коде. Не разберу, как потом перевести ascii-код числа в обычное число.
-
- beginner
- Сообщения: 15
- Зарегистрирован: 07 окт 2018, 01:40
- Версия LabVIEW: 2013
- Контактная информация:
Re: Преобразовать число в строку
Подскажите пожалуйста, есть ли в С++ функции для преобразования ascii в обычное число? Или алгоритмы?
Функция atoi в stm32 не работает ((
Функция atoi в stm32 не работает ((
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Преобразовать число в строку
pazitiff25 писал(а):Подскажите пожалуйста, есть ли в С++ функции для преобразования ascii в обычное число? Или алгоритмы? ... ((
ASCII код - 48 = Значение числа
49 - 48 = 1
отправляет строку (массив байтов). А как в этих байтах кодируется информация - это другой вопрос :). Можно отправлять числа и в бинарном формате. Например число 2018 : ASCII - hex: 32 30 31 38 Бинарный - hex: 07 E2pazitiff25 писал(а):Я так понимаю, LabView отправляет данные в ascii-коде.
Последний раз редактировалось Blackman 08 окт 2018, 11:29, всего редактировалось 1 раз.
-
- professor
- Сообщения: 3406
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Преобразовать число в строку
зачем мудрить, когда есть готовое?Blackman писал(а):pazitiff25 писал(а):Подскажите пожалуйста, есть ли в С++ функции для преобразования ascii в обычное число? Или алгоритмы? ... ((
ASCII код - 48 = Значение числа
49 - 48 = 1
вы же не будете в так преобразовывать стрки в числа?
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Преобразовать число в строку
А почему нет? Хороший пример алгоритма для pazitiff23 :) Под капотом примерно тоже самое, найли лайкли :)))
-
- professor
- Сообщения: 3406
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Преобразовать число в строку
ну если только с точки зрения изучения алгоритмов :)Blackman писал(а):А почему нет? Хороший пример алгоритма для pazitiff23 :) Под капотом примерно тоже самое, найли лайкли :)))
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Преобразовать число в строку
Это уже интересно, впервые слышу. Все работает.Функция atoi в stm32 не работает
стандартный хедер #include <stdlib.h> подключен?
Вот на вскидку из гугла - почитайте. Вот из Keil
Если нужно наоборот, то вот неплохая статья.
Я так понимаю NUCLEO-F767ZI ковыряете? Если да, то зачем Вам UART там же USB на борту...
Последний раз редактировалось taras_33 08 окт 2018, 14:28, всего редактировалось 1 раз.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
So far, the Universe is winning!
-
- beginner
- Сообщения: 26
- Зарегистрирован: 23 авг 2016, 09:16
- Версия LabVIEW: 2016
- Контактная информация:
Re: Преобразовать число в строку
pazitiff25, чтобы "работать с теми же числами, что и в контроллере" попробуйте:
-
- beginner
- Сообщения: 15
- Зарегистрирован: 07 окт 2018, 01:40
- Версия LabVIEW: 2013
- Контактная информация:
Re: Преобразовать число в строку
Alex3f, спасибище огромное, вставил квадратную шпильку - все заработало! Шлет чистейшие интеджеры!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 1017 Просмотры
-
Последнее сообщение milakhimov