
Gid
05.04.2017
08:24:06

Женя
05.04.2017
08:24:08
да в принципе, чип FT232R подключен к вирутальному ком-порту, а он в свою очередь к USB разъему компа

Gid
05.04.2017
08:24:10
Вот такую штуку короче

Ilya
05.04.2017
08:24:14
могу предложить сделать свой стрим, который будет читать каждый четвертый байт из исходного стрима

Google

Gid
05.04.2017
08:24:23
Напиши мне на PCM2706
Алсо ты для себя пишешь?

Женя
05.04.2017
08:25:04
нет, я пишу для компании, драйвера для оборудования телефонных станций

Gid
05.04.2017
08:25:11
Аааа, во оно как

Ilya
05.04.2017
08:25:24

Женя
05.04.2017
08:25:30
угу
у меня же по-сути COM порт, пусть и виртуальный
а с ним можно и в шарпе работать
чтобы было красивое решение.
а не куча Array.Copy

Ilya
05.04.2017
08:28:49
никаких Array.Copy, в стриме есть позиция и чтение, ты берешь исходный поток и просто пропускаешь нужное количество байт и читаешь
начальный поток чем представлен? каким классом?

Google

Женя
05.04.2017
08:29:23
да мне еще надо писать в порт пакетами по 165 байт
в каждый пакет упаковано 4 канала

Ilya
05.04.2017
08:29:36
наследником Stram или како то unmanaged структурой?

Женя
05.04.2017
08:30:00
MemoryStream

Ilya
05.04.2017
08:30:11
165 не делится на 4)

Женя
05.04.2017
08:31:24
пардон, 169 это с хидером, он 9 байт составляет, значит 160 байт для 4 потоков в 1 пакете

Ilya
05.04.2017
08:32:20
флоу такой, есть стрим с 4мя каналами,мы его разделяем на каналы и ещё исходные данные отправляем в порт по 160 байт, так?

Женя
05.04.2017
08:33:32
когда читаю из порта, я разделяю на 4 канала, а когда пишу в порт, то собираю 4 массива в один поток, и пишу их пакетами по 160 байт
еще в шарпе нет события когда буфер записи COM порта очищается (

Ilya
05.04.2017
08:34:57
а разделять зачем? почему нельзя писать исходные данные? там же нет каких преобразований

Andrew
05.04.2017
08:35:25

Женя
05.04.2017
08:35:42
нужно в некоторые каналы выдавать записанный голос автоинформатора, ну типа вы позваонили в компанию такую то оставайтесь на линии..

Ilya
05.04.2017
08:38:18
интересная штука
http://stackoverflow.com/questions/492283/when-to-use-net-bufferedstream-class
Microsoft improved the performance of all streams in the .NET Framework by including a built-in buffer. The performance noticeably improved by applying a BufferedStream to existing streams, such as a FileStream or MemoryStream. Applying a BufferedStream to an existing .NET Framework stream results in a double buffer.

Женя
05.04.2017
08:43:46
а как в C# получить уведомление что произошла очистка буфера записи COM-порта?
специального события вроде нет

Ilya
05.04.2017
08:45:45
взгляни вот на такую штуку для каждого из каналов
https://github.com/xorxornop/RingBuffer
пиши туда данные всё время с каким то максимальным размером буффера

Google

Andrew
05.04.2017
08:46:07

Женя
05.04.2017
08:48:02

Ilya
05.04.2017
08:48:13
ты читаешь данные из MemoryStream пачками по 160 байт и отправляешь их в порт, эти же данные ты разбиваешь на 4 канала и пишешь в RingBufferStream
это же .net тут важно гуглить)
кто хочет дааные по каналам - считывает, кто не хочет - хрен с ним, данные будут сами затираться

Женя
05.04.2017
08:49:30
https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D1%8C%D1%86%D0%B5%D0%B2%D0%BE%D0%B9_%D0%B1%D1%83%D1%84%D0%B5%D1%80

Andrew
05.04.2017
08:50:21
структуры данных тема такая, стоит её знать и периодически освежать знания

Женя
05.04.2017
08:59:10
https://habrahabr.ru/post/245837/

Alex
05.04.2017
09:00:17
кто знает годный гайд/туториал/книжку по структурам данных?

Ilya
05.04.2017
09:00:38
тебе не нужна очередь, если никто не будет забирвать данные, память будет утекать

Alex
05.04.2017
09:02:43
ой, да, пасиба

Anatoly
05.04.2017
09:08:50

Илья
05.04.2017
09:22:59
у меня такой вопрос: мне тут сказали что статичные методы - зло, это правда? просто иногда гораздо проще все решить полностью статичным классом чем городить объект... Хотя в то же время когда выходит что в этом классе 100500 вспомогательных статичных методов это уже какое-то процедурно-ориентированное программирование получается...

Дмитрий
05.04.2017
09:24:23
методы расширения только так и делаются

Илья
05.04.2017
09:24:28
вот например пишу я парсер для кое-каких специфичных html-ек. Мне проще сделать метод Parse в который надо передать всего-то 2 аргумента, чем делать зачем-то объект

Дмитрий
05.04.2017
09:24:29
например

Илья
05.04.2017
09:24:38

Nikolay
05.04.2017
09:24:49

Google

Victor
05.04.2017
09:49:19
ребят не подскажите где можно бесплатно веб серивс разместить ?

Anton
05.04.2017
09:49:58
https://hosting.asp.net/hosting/home фильтани по цене)

Victor
05.04.2017
09:51:25
спасибо))

Женя
05.04.2017
09:51:28
а подскажите как биты в байте считаются, справа налево или слева направо?

Timur
05.04.2017
09:53:54
всегда справа налево считались

Ilya
05.04.2017
09:54:27
есть слева направо Big-endian, или little-endian

Илья
05.04.2017
09:54:32
помогите составить алгоритм парсинга пожалуйста, а то я че-то уже запутался...
Есть файл вида:
filename
error | warning <data>
name description
Надо получить на выходе структуру вроде:
[
"filename": "filename",
"fileproblems": [
{
"problemtype": "error",
"name": "name",
"description": "data : description"
}
]
]
Строк может быть очень много

Ilya
05.04.2017
09:54:46

Admin
ERROR: S client not available

Женя
05.04.2017
09:55:09
мне нужно вот такие биты распарсить
XX - байт с информацией о занятии линий устройством (биты 0-1 линия, 1-2 линия, 2-3 линия, 3-4 линия - 1=занятие, 0=без занятия), блокировка сигналов в линии(4бит=0 - нет сигнала в 1 линии,5бит=0 - 2 линия и т.д.)

Ilya
05.04.2017
09:56:23

Женя
05.04.2017
09:56:46
не это просто байт, в котором хранятся биты играющие роль флажков

Ilya
05.04.2017
09:57:02
просто в байте 8 бит))

Timur
05.04.2017
09:57:15
враньё

Ilya
05.04.2017
09:57:16
аааа, это номер бита)))

Timur
05.04.2017
09:57:22
байт, как и слово, может быть любой битности

Женя
05.04.2017
09:57:40
в моем случае 8 бит

Ilya
05.04.2017
09:58:06
тут .net, здесь байт - 8 бит, инт - 32 бита)

Женя
05.04.2017
09:58:15
есть пакет для парсинга битов?

Google

Timur
05.04.2017
09:58:20
так он, как я понимаю, откуда-то получает сигналы
там может сигнал идти любой битности

Ilya
05.04.2017
09:58:34
я могу предложить сделать енум и использовать hasflag

Женя
05.04.2017
09:59:06
а чтобы устанавливать биты в байте?

Timur
05.04.2017
09:59:29
тебе поможет OR
XOR, AND и прочие

Ilya
05.04.2017
09:59:55
или просто делать вот так value&1==1 - первая линия, value&2==2 - вторая, value&4==4 - третья

Timur
05.04.2017
10:00:37
0101 | 1000 = 1101
считай, установил 4ый бит

Женя
05.04.2017
10:00:54

Ilya
05.04.2017
10:00:56
о, бинарные литералы же завезли в C#7
рекомендую делать через enum

Timur
05.04.2017
10:02:16

Ilya
05.04.2017
10:02:28
щас накидаю пример
https://dotnetfiddle.net/JVdYUW
типа такого, но надо ещё добавить вот такую штуку
public static Extensions
{
public static bool HasFlag(this LineStatus value, LineStatus flag)
{
return (value & flag) != 0;
}
}

Gid
05.04.2017
10:12:15
найс у десктопа вторая жизнь
наступает
Эта группа больше не существует