1 (edited by nikomi1 2025-02-10 13:46:19)

Topic: текстовая строка

привет. не могу вывести на экран текст, через текстовую строку.


// можете включить вывод отладочной информации в Serial на 115200
//#define REMOTEXY__DEBUGLOG    

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__HARDSERIAL


// настройки соединения 
#define REMOTEXY_SERIAL Serial3
#define REMOTEXY_SERIAL_SPEED 9600


#include <RemoteXY.h>

// конфигурация интерфейса RemoteXY  
#pragma pack(push, 1)  
uint8_t RemoteXY_CONF[] =   // 39 bytes
  { 255,0,0,1,0,32,0,19,0,0,0,0,31,1,106,200,1,1,1,0,
  74,3,27,100,17,12,2,135,65,64,83,116,114,105,110,103,32,49,0 };
  
// структура определяет все переменные и события вашего интерфейса управления 
struct {

    // output variables
  char strings_01 [10]; 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY;   
#pragma pack(pop)
 



void setup() {RemoteXY_Init (); }

void loop() { 
RemoteXY_Handler ();
sprintf (RemoteXY.strings_01,"hello");
}

что я делаю не так? как писать по строкам string 1? подскажите пожалуйста

2

Re: текстовая строка

По всей видимости вы вручную что то изменили либо в массиве RemoteXY_CONF или в структуре RemoteXY. Делать это не стоит, эти данные должны быть точно такие как вам выдал редактор. Если вы что то меняете вы получите неработоспособный интерфейс. Меняйте только в редакторе, далее получайте новый код и копируйте новые массив и структуру к себе в код. Там даже для этого есть кнопка "Скопировать конфигурацию".
Этот код будет работать:

// можете включить вывод отладочной информации в Serial на 115200
//#define REMOTEXY__DEBUGLOG   

// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__HARDSERIAL


// настройки соединения
#define REMOTEXY_SERIAL Serial3
#define REMOTEXY_SERIAL_SPEED 9600


#include <RemoteXY.h>

// конфигурация интерфейса RemoteXY 
#pragma pack(push, 1) 
uint8_t RemoteXY_CONF[] =   // 29 bytes
  { 255,0,0,11,0,22,0,19,0,0,0,0,31,1,106,200,1,1,1,0,
  67,7,24,92,18,101,31,135,11 };
  
// структура определяет все переменные и события вашего интерфейса управления 
struct {

    // output variables
  char strings_01[11]; // string UTF8 end zero

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY; 
#pragma pack(pop)




void setup() {RemoteXY_Init (); }

void loop() {
RemoteXY_Handler ();
sprintf (RemoteXY.strings_01,"hello");
}

3

Re: текстовая строка

Спасибо за ответ. Загрузил скетч из вашего ответа, все работает. Но когда пробую новый проект, опять выходит пустая строка. Выбираю блютуз, ардуино иде, stm32f1, serial3. Даже попробовал скопировать с вашего скетча все, что ниже struct{ аналогично пустая строка. Библиотеку обновил, приложение тоже((( жаль что не возможно загрузить скрин экрана, показал бы наглядно. Возможно ли такое, что нужно библиотеку откатить назад?

4

Re: текстовая строка

Я оставляю переменную string_01, а строка 1 оставляю string 1. Может тут я не правильно что делаю?

5

Re: текстовая строка

Нельзя менять что либо в структуре RemoteXY и в массиве RemoteXY_CONF вручную. Этот участок кода должен быть точно такой же как его сгенерировал редактор. Я писал об этом.

6

Re: текстовая строка

Доброго времени суток. В этом и проблема, что ничего практически не меня. В редакторе выбираю текстовую строку(переношу на экран). В конфигурации выбираю bluetooth, arduino ide, hc-05, stm32f1, serial3. Нажимаю получить исходный код. В полученном коде меняю
     // output variables
  uint8_t strings_01; // oт 0 до 1
    на char strings_01 [11];
в loop добавляю
  sprintf (RemoteXY.strings_01,"hello");
на этом все.

7

Re: текстовая строка

подскажите пожалуйста, что нужно сделать что бы в 
struct{
      // output variables

было
      char strings_01[11]; // string UTF8 end zero

а не
      uint8_t strings_01; // oт 0 до 1

8

Re: текстовая строка

nikomi1 wrote:

Доброго времени суток. В этом и проблема, что ничего практически не меня. В редакторе выбираю текстовую строку(переношу на экран). В конфигурации выбираю bluetooth, arduino ide, hc-05, stm32f1, serial3. Нажимаю получить исходный код. В полученном коде меняю
     // output variables
  uint8_t strings_01; // oт 0 до 1
    на char strings_01 [11];
в loop добавляю
  sprintf (RemoteXY.strings_01,"hello");
на этом все.

Вы просто берете и меняете. Я третий раз пишу что так делать нельзя.

9

Re: текстовая строка

nikomi1 wrote:

подскажите пожалуйста, что нужно сделать что бы в 
struct{
      // output variables

было
      char strings_01[11]; // string UTF8 end zero

а не
      uint8_t strings_01; // oт 0 до 1

1. Вам нужно использовать элемент "Значение" (Value) вместо элемента "Строка"(String).
2. В настройках элемента выбрать тип "String" и установить необходимую длину.
Тогда в исходно коде будет та переменная которая вам нужна.

10

Re: текстовая строка

Добрый день, в этом и проблема. в элементе у меня есть параметр : переменная по правилам С++ (в которой Strings_01) и строка1 в которой есть параметр : строка (в которой string 1). как устанавливается длина ? как понимаю в параметре  : переменная по правилам С++ нужно оставлять Strings_01?

11

Re: текстовая строка

nikomi1 wrote:

Добрый день, в этом и проблема. в элементе у меня есть параметр : переменная по правилам С++ (в которой Strings_01) и строка1 в которой есть параметр : строка (в которой string 1). как устанавливается длина ? как понимаю в параметре  : переменная по правилам С++ нужно оставлять Strings_01?

Вы просто используете не тот элемент управления который вам нужен.
1. Вам нужно использовать элемент "Значение" (Value) вместо элемента "Строки"(Strings).
Удалите в редакторе элемент "Строки" который вы поставили на экран. И установите элемент "Значение", найдите его в левой панели.

12

Re: текстовая строка

Спасибо! Все получилось!!!