Справочные материалы и примеры App Inventor
- Phazz
- Полковник
- Сообщения: 3131
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Справочные материалы и примеры App Inventor
В общем в коде я победил это. А вот как упаковать теперь это в блок. Не хватает в редакторе вставки в конкретное место кода, чтобы блоки могли использовать одну функцию
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Справочные материалы и примеры App Inventor
viewtopic.php?t=7589#p106683Phazz писал(а): 12 окт 2021, 18:04 Не хватает в редакторе вставки в конкретное место кода, чтобы блоки могли использовать одну функцию
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Phazz
- Полковник
- Сообщения: 3131
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Справочные материалы и примеры App Inventor
[ref=#ff8000]Sancho[/ref], Это я все знаю, но чтобы блок получился универсальным нужно чтобы его код располагался в конкретной функции.
Отправлено спустя 57 минут 8 секунд:
Ну вроде получилось ))
Отправлено спустя 57 минут 8 секунд:
Ну вроде получилось ))
Последний раз редактировалось Phazz 13 окт 2021, 19:06, всего редактировалось 1 раз.
Справочные материалы и примеры App Inventor
[ref=#808080]Phazz[/ref],
ругается в:
[spoiler]
if (client)
{
doc[(String("str"))] = (((_gtv4) + ((String(_gtv2, DEC)))));
}
if (client)
{
doc[(String("float"))] = (_gtv3);
}
if (client)
{
doc[(String("int"))] = (_gtv2);
}
if (client)
{
doc[(String("bool"))] = ;
}
[/spoiler]
вот на эту строку doc[(String("bool"))] = ;
и на то что не задекларировано:
StaticJsonDocument<512> doc;
StaticJsonDocument<512> doc1;
Отправлено спустя 9 минут 9 секунд:
и здесь ругается:
if (client)
{
<Out_str>= doc1[(String("str"))];
}
а я с новым редактором не дружу еще)))
ругается в:
[spoiler]
if (client)
{
doc[(String("str"))] = (((_gtv4) + ((String(_gtv2, DEC)))));
}
if (client)
{
doc[(String("float"))] = (_gtv3);
}
if (client)
{
doc[(String("int"))] = (_gtv2);
}
if (client)
{
doc[(String("bool"))] = ;
}
[/spoiler]
вот на эту строку doc[(String("bool"))] = ;
и на то что не задекларировано:
StaticJsonDocument<512> doc;
StaticJsonDocument<512> doc1;
Отправлено спустя 9 минут 9 секунд:
и здесь ругается:
if (client)
{
<Out_str>= doc1[(String("str"))];
}
а я с новым редактором не дружу еще)))
Справочные материалы и примеры App Inventor
в блоке в редакторе добавляем в секцию loop:feodor53 писал(а): 13 окт 2021, 18:12 и на то что не задекларировано:
StaticJsonDocument<512> doc;
StaticJsonDocument<512> doc1;
[spoiler]
StaticJsonDocument<<Size in>> doc;
StaticJsonDocument<<Size out>> doc1;
[/spoiler]
Последний раз редактировалось feodor53 13 окт 2021, 18:54, всего редактировалось 1 раз.
Справочные материалы и примеры App Inventor
тоже в редакторе блоков найти и сделать так (в разделе "код каждого экземпляра"):
[spoiler]
if (client)
{
doc[<Key>] = <Data_bool>;
}
[/spoiler]
Отправлено спустя 1 минуту 46 секунд:
вот только нет обмена с новыми блоками

- Phazz
- Полковник
- Сообщения: 3131
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Справочные материалы и примеры App Inventor
Прошу прощения, не ту версию скинул
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Справочные материалы и примеры App Inventor
if (client)
{
<Out_str>= doc1[(String("str"))];
}
а как исправить? не могу найти в редакторе где это находится
- Phazz
- Полковник
- Сообщения: 3131
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Справочные материалы и примеры App Inventor
[ref]feodor53[/ref], а что тут ошибка?
Отправлено спустя 53 секунды:
Это находится в блоке клиент
Отправлено спустя 53 секунды:
Это находится в блоке клиент
Справочные материалы и примеры App Inventor
это уже в скомпилированном коде находится.
должно быть как то так:
Out_214699097_155203944= doc1[(String("float"))];
и так у всех
кроме вот этой:
<Out_str>= doc1[(String("str"))];
Отправлено спустя 36 секунд:
не подставляется при компиляции получается
Отправлено спустя 2 минуты 56 секунд:
вот может взглянете как возможгость будет?
[spoiler] [/spoiler]
не компилируется выход стринг.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось feodor53 13 окт 2021, 19:50, всего редактировалось 1 раз.
- Phazz
- Полковник
- Сообщения: 3131
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Справочные материалы и примеры App Inventor
Точно, сейчас исправлю
Отправлено спустя 48 минут 20 секунд:
[ref]feodor53[/ref], Исправил
Отправлено спустя 48 минут 20 секунд:
[ref]feodor53[/ref], Исправил
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Справочные материалы и примеры App Inventor
[ref=#808080]Phazz[/ref],
у вас округляет флоат если слать из телефона?
шлю 9.99 - получаю в порту 10.0
шлю 9.888888 - получаю 9.89
у вас округляет флоат если слать из телефона?
шлю 9.99 - получаю в порту 10.0
шлю 9.888888 - получаю 9.89
- Phazz
- Полковник
- Сообщения: 3131
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Справочные материалы и примеры App Inventor
[ref]feodor53[/ref], округляет если больше 2 знаков после запятой
Справочные материалы и примеры App Inventor
есть предположения где округляется?
в есп или в телефоне?
- Phazz
- Полковник
- Сообщения: 3131
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Справочные материалы и примеры App Inventor
нашел, это по-моему вывод в порт округляет
Отправлено спустя 10 минут 11 секунд:
[ref]feodor53[/ref], да, так и есть ) подключил через конвертацию флоат в стринг с ограничением в 6 знаков и ничего не округляет если меньше.
Отправлено спустя 10 минут 11 секунд:
[ref]feodor53[/ref], да, так и есть ) подключил через конвертацию флоат в стринг с ограничением в 6 знаков и ничего не округляет если меньше.
Справочные материалы и примеры App Inventor
[ref=#808080]Phazz[/ref],
что то с bool не так.
вот это получается при компиляции:
[spoiler]
if (client)
doc[(String("bool"))] = ;
[/spoiler]
вроде как в блоке отправки вместо
doc[<Key>] = <Data_bool>;
ошибочно указано doc[<Key>] = <Data_int>;
исправляю - все компилируется, но ИЗ телефона не приходит bool. (все остальные приходят переменные).
может там в блоке еще где то нужно править код?
у вас ИЗ телефона как дела с bool обстоят?
что то с bool не так.
вот это получается при компиляции:
[spoiler]
if (client)
doc[(String("bool"))] = ;
[/spoiler]
вроде как в блоке отправки вместо
doc[<Key>] = <Data_bool>;
ошибочно указано doc[<Key>] = <Data_int>;
исправляю - все компилируется, но ИЗ телефона не приходит bool. (все остальные приходят переменные).
может там в блоке еще где то нужно править код?
у вас ИЗ телефона как дела с bool обстоят?
Справочные материалы и примеры App Inventor
еще такой нюанс:
-при приеме ИЗ телефона в сериале видно что пришли переменные и их значения.
-но после приема происходит их сброс в 0.
т.е. в сериале сейчас вот так:
->88.99 //пришли данные из телефона
->12345 //пришли данные из телефона
->00.00 //вот тут уже сброс в ноль
->0 //и здесь сброс в ноль
а как сделать чтоб не сбрасывались переменные на выходе из блока?
может какой выход из блока нужен, по которому можно будет мониторить приход новых данных и по этому выходу записывать в переменные в есп?
-при приеме ИЗ телефона в сериале видно что пришли переменные и их значения.
-но после приема происходит их сброс в 0.
т.е. в сериале сейчас вот так:
->88.99 //пришли данные из телефона
->12345 //пришли данные из телефона
->00.00 //вот тут уже сброс в ноль
->0 //и здесь сброс в ноль
а как сделать чтоб не сбрасывались переменные на выходе из блока?
может какой выход из блока нужен, по которому можно будет мониторить приход новых данных и по этому выходу записывать в переменные в есп?
- Phazz
- Полковник
- Сообщения: 3131
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Справочные материалы и примеры App Inventor
Запись в переменную происходит в момент подключения клиента к есп
Отправлено спустя 2 часа 16 минут 27 секунд:
иcправил boolean
Отправлено спустя 1 час 50 минут 49 секунд:
Отправлено спустя 2 часа 16 минут 27 секунд:
иcправил boolean
Отправлено спустя 1 час 50 минут 49 секунд:
Исправилfeodor53 писал(а): 14 окт 2021, 01:40 а как сделать чтоб не сбрасывались переменные на выходе из блока?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Справочные материалы и примеры App Inventor
[ref=#808080]Phazz[/ref],
отличные блоки!
Прием - Передача одной кнопкой.
Как получить-отправить (наши данные по json) при нажатии одной кнопкой?
Самый простой вариант - это объединить все действия (необходимые для получения и отправки) при нажатии одной кнопки:
создаем новую кнопку "Получить-Отправить Одной кнопкой":
[spoiler] [/spoiler]
и теперь просто объединяем в ней действия из кнопок "Получить json" и "Отправить json":
[spoiler] [/spoiler]
Можно и более элегантно это сделать: с помощью процедур (функций). Это позволит избежать нагромождение "кода":
создаем две функции: получить и отправить. В них делаем действия, которые, мы выше делали при нажатии соответствующих кнопок:
[spoiler] [/spoiler]
и теперь весь "код" при нажатии кнопки "Получить-Отправить Одной кнопкой" будет выглядеть так:
[spoiler] [/spoiler]
Эти созданные функции-процедуры мы можем использовать неограниченное количество раз, но в пределах одного Экрана (в MIT).
файлы проекта и приложение
[spoiler] [/spoiler]



Прием - Передача одной кнопкой.
Как получить-отправить (наши данные по json) при нажатии одной кнопкой?
Самый простой вариант - это объединить все действия (необходимые для получения и отправки) при нажатии одной кнопки:
создаем новую кнопку "Получить-Отправить Одной кнопкой":
[spoiler] [/spoiler]
и теперь просто объединяем в ней действия из кнопок "Получить json" и "Отправить json":
[spoiler] [/spoiler]
Можно и более элегантно это сделать: с помощью процедур (функций). Это позволит избежать нагромождение "кода":
создаем две функции: получить и отправить. В них делаем действия, которые, мы выше делали при нажатии соответствующих кнопок:
[spoiler] [/spoiler]
и теперь весь "код" при нажатии кнопки "Получить-Отправить Одной кнопкой" будет выглядеть так:
[spoiler] [/spoiler]
Эти созданные функции-процедуры мы можем использовать неограниченное количество раз, но в пределах одного Экрана (в MIT).
файлы проекта и приложение
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось feodor53 14 окт 2021, 19:49, всего редактировалось 1 раз.
Справочные материалы и примеры App Inventor
Получение данных автоматически по таймеру.
Но зачем нам нажимать кнопки, если хочется получать данные автоматически?
Берем элемент "часы" и вытаскиваем на Экран.
Устанавливаем период срабатывания таймера.
Например раз в 100 мсек:
[spoiler] [/spoiler]
Настраиваем действия при срабатывании таймера.
Теперь при срабатывании таймера мы получим данные из есп (не нажимая кнопку "Получить json"):
[spoiler] [/spoiler]
так же можно и с отправкой в есп делать по таймеру.
проект и приложение с таймером:
[spoiler] [/spoiler]
Но зачем нам нажимать кнопки, если хочется получать данные автоматически?
Берем элемент "часы" и вытаскиваем на Экран.
Устанавливаем период срабатывания таймера.
Например раз в 100 мсек:
[spoiler] [/spoiler]
Настраиваем действия при срабатывании таймера.
Теперь при срабатывании таймера мы получим данные из есп (не нажимая кнопку "Получить json"):
[spoiler] [/spoiler]
так же можно и с отправкой в есп делать по таймеру.
проект и приложение с таймером:
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось feodor53 14 окт 2021, 19:50, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя