Flatten To String баг или фича?

Простейшие вопросы в области инженерной разработки

Flatten To String баг или фича?

Postby Usss on 11 Sep 2017, 18:15

На вход подаем кластер с пустым массивом или кластер с пустой строкой. На выходе получаем какие-то левые 4 байта. Как так то? Можно вылечить?

upd: решение - viewtopic.php?f=21&t=9486&p=76195#p76195
Attachments
Screenshot_3.png
1.vi
(8.08 KiB) Downloaded 27 times
Last edited by Usss on 16 Sep 2017, 12:53, edited 3 times in total.
Usss
beginner
beginner
 
Posts: 48
Joined: 19 Apr 2017, 23:06
LabVIEW Version: 2015
Karma: 10

Re: Flatten To String баг или фича?

Postby dadreamer on 11 Sep 2017, 18:38

User avatar
dadreamer
doctor
doctor
 
Posts: 2921
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 711
I/O VIP vision internet

Re: Flatten To String баг или фича?

Postby Usss on 12 Sep 2017, 10:32

Требуется преобразовать кластер в массив байт. Кластеров много разных, содержимое у каждого свое, в том числе числа, массивы и строки. Пока не придумал ничего лучше чем преобразовывать каждый элемент кластера отдельно
Usss
beginner
beginner
 
Posts: 48
Joined: 19 Apr 2017, 23:06
LabVIEW Version: 2015
Karma: 10

Re: Flatten To String баг или фича?

Postby dadreamer on 12 Sep 2017, 10:53

User avatar
dadreamer
doctor
doctor
 
Posts: 2921
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 711
I/O VIP vision internet

Re: Flatten To String баг или фича?

Postby AndreyDmitriev on 12 Sep 2017, 11:48

User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

Re: Flatten To String баг или фича?

Postby Usss on 15 Sep 2017, 17:47

Решено!
Было ощущение, что изобретаю велосипед. Не понятно, почему такой vi нет по умолчанию в LV.
Я разобрал только нужные мне типы: все integer, Uinteger, double, массивы из этих типов, кластеры, массив кластеров. Если кому, нужны остальные типы, тот без труда дополнит.
Attachments
333.png
Any data to binary string.vi
(33.64 KiB) Downloaded 23 times
Usss
beginner
beginner
 
Posts: 48
Joined: 19 Apr 2017, 23:06
LabVIEW Version: 2015
Karma: 10

Re: Flatten To String баг или фича?

Postby dadreamer on 15 Sep 2017, 18:54

User avatar
dadreamer
doctor
doctor
 
Posts: 2921
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 711
I/O VIP vision internet

Re: Flatten To String баг или фича?

Postby Usss on 15 Sep 2017, 19:41

Вот щас ваще красоту навел. На самом деле мне надо эти данные передавать по TCP, принимающая сторона имеет протокол данных и сможет их расшифровать. Так что мне совсем не нравится что Flatten To String передает всякие мета данные
Attachments
11111.png
Flatten To String II.llb
(73.82 KiB) Downloaded 22 times
Usss
beginner
beginner
 
Posts: 48
Joined: 19 Apr 2017, 23:06
LabVIEW Version: 2015
Karma: 10

Re: Flatten To String баг или фича?

Postby Kosist on 15 Sep 2017, 21:43

Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 786
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 236
CLAD I/O VIP students

Re: Flatten To String баг или фича?

Postby Borjomy_1 on 15 Sep 2017, 22:37

Вообще-то flatten To string это чемпион по компактности. И ежели у вас размер массива фиксированный, то обычно делают кластер с заданным количеством элементов. Передавать динамический массив без размера - глупость. Если размер массива находится не перед ним в посылке, то совершенно не возбраняется закидывать элементы в строку раздельно, а потом их собрать в одну строку. И разбор можно делать также, последовательно.
Borjomy_1
expert
expert
 
Posts: 1766
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Flatten To String баг или фича?

Postby Kosist on 16 Sep 2017, 00:07

Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 786
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 236
CLAD I/O VIP students

Re: Flatten To String баг или фича?

Postby dadreamer on 16 Sep 2017, 12:37

User avatar
dadreamer
doctor
doctor
 
Posts: 2921
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 711
I/O VIP vision internet

Re: Flatten To String баг или фича?

Postby Usss on 16 Sep 2017, 12:51

Длина данных от пользователя к серверу всегда известна, а длина данных от сервера к пользователю вычисляется исходя из параметров, которые пользователь ему отправляет. ПО сервера написано не на LAbview, но его позже тоже надо будет переписать на Labview
Usss
beginner
beginner
 
Posts: 48
Joined: 19 Apr 2017, 23:06
LabVIEW Version: 2015
Karma: 10

Re: Flatten To String баг или фича?

Postby Blackman on 16 Sep 2017, 14:39

Attachments
Flatten2String.png
Blackman
leader
leader
 
Posts: 694
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 174

Re: Flatten To String баг или фича?

Postby dadreamer on 16 Sep 2017, 22:12

Хотя при первом взгляде кажется, что решение Usss выглядит малость "велосипедно", что-то в нём есть. Если представить, что есть превеликое множество кластеров с совершенно различными типами данных в них, включая вложенные кластеры, то конвертация в поток байтов может быть изрядным "гемором" - каждый кластер надо разобрать на элементы, каждый элемент прогнать через Type Cast, затем все эти выходы объединить в одно целое. Это займёт ощутимое время и не менее ощутимое место на БД. ВИ-айка Usss практически могла бы обеспечить компактность на диаграмме и простоту преобразования, а также универсальность, что немаловажно. Другое дело, что её потребуется допилить, чтобы она "ела" все возможные типы данных :labview: . Ну, и нельзя не заметить, что случай, когда потребуется подобное преобразование без "левых" данных, может вовсе не представиться. На мой практике я припоминаю ровно один такой случай - нужно было преобразовать несколько кластеров в массив U8 для отправки через Profinet плату. Мне было проще разобрать кластеры, благо что их было не более 5 штук.
User avatar
dadreamer
doctor
doctor
 
Posts: 2921
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 711
I/O VIP vision internet


Return to Для чайников

Who is online

Users browsing this forum: Bing [Bot], Yahoo and 12 guests

cron