Преобразование Барроуза — Уилера или как пережать траффик

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Аватара пользователя
Cat
adviser
adviser
Сообщения: 203
Зарегистрирован: 22 июл 2010, 09:53
Версия LabVIEW: 12
Контактная информация:

Преобразование Барроуза — Уилера или как пережать траффик

Сообщение Cat »

Добрый день! Товарищи, кто занимался удаленной работой, как вы пережимали траффик? Понимаю, что нужно оптимизировать данные, подготавливать и так далее, но сейчас нет возможности получить конечное представление, какие данные будут, а какие нет. Поэтому существующие данные с избыточностью, хочу пережать и восстановить. Может быть есть готовые библиотеки? Кто, как решал такие задачи?
p/s. обмен между двумя Vi, установленных в одной сети ethernet.
p.p.s http://habrahabr.ru/post/142492/
Чеширский Кот - совсем не тот, что чешет языком.
Mad!sson
beginner
beginner
Сообщения: 22
Зарегистрирован: 21 янв 2015, 10:46
Версия LabVIEW: 2013
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Mad!sson »

Привет!

Попробуй вот эту. Библиотека которую мы собрали для расспаковки gzip формата (данные получаем с сервера). Для запаковки, к сожалению, нет, но есть код С#:
var response = (HttpWebResponse)httpRequest.GetResponse();
var responseBuff = ReadFully(response.GetResponseStream());
if (response.ContentEncoding.ToLower().Contains("gzip"));
responseBuff = new CompressProvider().Decompress(responseBuff);

public class CompressProvider
{
public byte[] Decompress(byte[] data)
{
MemoryStream memoryStream = new MemoryStream(data, 0, data.Length);
MemoryStream decompressedStream = new MemoryStream();
int totalRead = 0;
int blockSize = 1024;
byte[] tempBuffer = new byte[blockSize];
using (GZipStream gzStream = new GZipStream(memoryStream, CompressionMode.Decompress))
{
while (true)
{
int bytesRead = gzStream.Read(tempBuffer, 0, blockSize);
if (bytesRead == 0)
break;
decompressedStream.Write(tempBuffer, 0, bytesRead);
totalRead += bytesRead;
}
}
return decompressedStream.ToArray();
}

MemoryStream - библиотека C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll
GZipStream - C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll

Отсюда можно сообразить запаковку, поменяв CompressionMode.Decompress на CompressionMode.Сompress
Вложения

[Расширение dll было запрещено, вложение больше недоступно.]

Аватара пользователя
Cat
adviser
adviser
Сообщения: 203
Зарегистрирован: 22 июл 2010, 09:53
Версия LabVIEW: 12
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Cat »

Спасибо! Я правда в С#, не очень силен больше радиоинженер,чем программист))готовые библиотеки научился подключать и использовать,а вот с С#... попробую разобраться.
Чеширский Кот - совсем не тот, что чешет языком.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение dadreamer »

Cat, вам не нужно писать библиотеки, нужно просто перевести код C# в код :labview: , тем более что его не так уж много. Используйте .NET узлы в палитре Connectivity. Посмотрите также тему http://www.labviewportal.org/viewtopic. ... 179#p65152
Если вообще с .NET ни разу не работали, то смотрите статью http://www.notatamelion.com/2015/07/02/ ... n-labview/
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение dadreamer »

Сейчас вот подумалось, что не проще ли взять готовые ZLIB Inflate / Deflate из инструментария OpenG ZIP Tools и юзать их, всё равно ведь данные будете передавать в виде строки или массива байт?..
Вложения
2015-08-08_22-19-01.jpg
2015-08-08_22-19-01.jpg (24.16 КБ) 10384 просмотра
Аватара пользователя
Cat
adviser
adviser
Сообщения: 203
Зарегистрирован: 22 июл 2010, 09:53
Версия LabVIEW: 12
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Cat »

dadreamer писал(а):Сейчас вот подумалось, что не проще ли взять готовые ZLIB Inflate / Deflate из инструментария OpenG ZIP Tools и юзать их, всё равно ведь данные будете передавать в виде строки или массива байт?..
Проще и в данный момент, наверно это будет оптимальное решение! За ссылки отдельное спасибо!
Чеширский Кот - совсем не тот, что чешет языком.
Аватара пользователя
Cat
adviser
adviser
Сообщения: 203
Зарегистрирован: 22 июл 2010, 09:53
Версия LabVIEW: 12
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Cat »

У меня на рабочей машине не стоит, OpenG Toolkit, dadreamer не могли бы Вы скинуть ZLIB Inflate / Deflate VI?
Чеширский Кот - совсем не тот, что чешет языком.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Kosist »

Запускаете VI Package Manager (устанавливается по умолчанию с LabVIEW, если нет, можно скачать вручную), выбираете нужную версию LabVIEW, вбиваете в поиск OpenG LabVIEW ZIP Library, устанавливаете.
Мы делили апельсин - много наших полегло...
Аватара пользователя
Cat
adviser
adviser
Сообщения: 203
Зарегистрирован: 22 июл 2010, 09:53
Версия LabVIEW: 12
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Cat »

Нашел на lava палитру "transport", там как раз есть zip в строку. Спасибо за решение и помощь!
Чеширский Кот - совсем не тот, что чешет языком.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение dadreamer »

Можно и без интернета установить, но также нужен VIPM. Сначала ставится VIPM, потом через него ставится пакет *.ogp. Все OpenG инструменты лежат здесь. По сабжу вам нужен раздел lib_lvzip и пакет oglib_lvzip-4.0.0-2.ogp (последний на текущий момент). Если есть какие-то зависимости, то VIPM об этом скажет при установке.

Я уже давно выкачал оттуда все свежие пакеты и когда требуется поставить :labview: на чистую систему без инета, ставлю сразу весь арсенал OpenG, благо VIPM позволяет ставить множество пакетов за один заход.
Аватара пользователя
Cat
adviser
adviser
Сообщения: 203
Зарегистрирован: 22 июл 2010, 09:53
Версия LabVIEW: 12
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Cat »

dadreamer писал(а):Можно и без интернета установить, но также нужен VIPM. Сначала ставится VIPM, потом через него ставится пакет *.ogp. Все OpenG инструменты лежат здесь. По сабжу вам нужен раздел lib_lvzip и пакет oglib_lvzip-4.0.0-2.ogp (последний на текущий момент). Если есть какие-то зависимости, то VIPM об этом скажет при установке.

Я уже давно выкачал оттуда все свежие пакеты и когда требуется поставить :labview: на чистую систему без инета, ставлю сразу весь арсенал OpenG, благо VIPM позволяет ставить множество пакетов за один заход.
При сборке .ехе, есть ли какие особенности при использовании OpenG? Может нужно пути к библиотекам прописывать?
Чеширский Кот - совсем не тот, что чешет языком.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Kosist »

Если Вы установите библиотеки к :labview:, а не будете использовать отдельно, то при сборке exe ничего не нужно делать, т.к. функции с палитры OpenG будут в списках Dependencies Вашего проекта.
Мы делили апельсин - много наших полегло...
Аватара пользователя
Cat
adviser
adviser
Сообщения: 203
Зарегистрирован: 22 июл 2010, 09:53
Версия LabVIEW: 12
Контактная информация:

Re: Преобразование Барроуза — Уилера или как пережать траффи

Сообщение Cat »

Спасибо, буду пробовать)
Чеширский Кот - совсем не тот, что чешет языком.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»