Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/20: Рейтинг темы: голосов - 20, средняя оценка - 4.95
1 / 1 / 2
Регистрация: 01.06.2011
Сообщений: 161

График

21.06.2011, 10:51. Показов 4473. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день ув. форумчане , собственно есть график , есть ком порт который принимает данные и выводит на график. Мне пришел 1 байт к примеру "1" записываем его как temp , потом пришло "2" записываем как temp2 , после того как мне пришёл 2 байт , он должен считать по формуле
"Z = (256 х temp2) + temp1"
После этого выводить на график то что мы получили в Z.
Подскажите как реализовать , на данный момент реализовано только получение пакетов , и вывод пакетов на график.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.06.2011, 10:51
Ответы с готовыми решениями:

Построить график функции y=x^2. График строится из отрезков и алгоритма Брезенхема
Построить график функции y=x^2. График строится с помощью отрезков. Для построения отрезков использовать алгоритм Брезенхема.

График
Добрый день ув. Форумчане , вот такой вопрос: Как мне построить график , который будет строится от принятых пакетов , т.е. от байтов от...

График
Помогите с задачей, я ввожу в один text.box координату Х а во второй text.box координату У. и нужно чтоб провелась прямая по графику с...

45
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
23.06.2011, 08:14
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от gslim921 Посмотреть сообщение
эм каким образом я проверю время выполнения всего процесса ? я уверен на 80% что проблема заключается
C#
1
2
Temp.AddRange(buffer.ToList().GetRange(0, Z)); //здесь и 
int Z = comport.Read(buffer, 0, bytes);  //здесь
таким способом можно проверять конкретные места кода на скорость. а портмоном время на ту или иную операцию с портом:открытие, настройка, чтение, запись и т.д. в Temp.AddRange(buffer.ToList().GetRange(0 , Z)); проблемы точно нет. это просто добавление части считанного массива в список. Время выполнения 0 мсек, как вы сами ранее убедились.

Добавлено через 6 минут
Сложно сказать где у вас возникает задержка аж на 15 сек возникает. Именно по этому я и предлагаю оценить время выполнения отдельных участков кода. Наиболее интересны время чтения данных и время обработки данных. Вот только ни один из них не должен создавать проблем, но мало ли. Если они дадут ожидаемое малое время выполнения, то тогда будем рассматривать другие варианты.
1
1 / 1 / 2
Регистрация: 01.06.2011
Сообщений: 161
23.06.2011, 11:15  [ТС]
так , разобрался ... спасибо , там у меня грабли кое какие были..
0
1 / 1 / 2
Регистрация: 01.06.2011
Сообщений: 161
28.06.2011, 18:27  [ТС]
опять та же трабла , он мне пакеты местами иногда меняет , допустим 1 пакет должен быть Temp1 а он записывает как Temp3 , или же 2 пакет должен быть Temp2 , а он пишет как Temp1 , но такое бывает редко , но всё же из-за этого график портится.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if (!comport.IsOpen) return;
              int bytes = comport.BytesToRead;
              byte[] buffer = new byte[bytes];
              int Z = comport.Read(buffer, 0, bytes);
              List<byte> Temp = new List<byte>();
                     if(bytes > 0)
                      
                      //Добавляем данные в конец буфера необработанных данных
                      Temp.AddRange(buffer.ToList().GetRange(0, Z));
                      // Пока в нашем буфере больше 1 байта
                      while (Temp.Count > 2)
                      {
                          int Result = (Temp[2] * 65536) + (Temp[1] * 256) + Temp[0];
                          long Logs = Result;
                          lst.Add((int)Result);
                          Thread.Sleep(1);
                          
                          if (checkBox1.Checked == true)
                          {
                              Log2(LogMsgType.Type1, Logs + " " + Temp[2] + " " + Temp[1] + " " + Temp[0] + "  ");
 
                              Thread.Sleep(1);
                          }
                          Temp.RemoveRange(0, 3);
                          
                      }
Добавлено через 22 минуты
прошу прощения , у меня иногда 1 пакет принимает значения Temp3 , а остальное не меняется , т.е. то что я написал выше что 1 пакет принимает Temp2 - не верно , 1 пакет иногда принимает только Temp3.

Добавлено через 39 минут
т.е. вот идут пакеты :
К.О :
T1 - Temp1
T2 - Temp2
T3 - Temp3
п1 - 1 пакет
п2 - 2 пакет
п3 - 3 пакет

вот они идут сначала :
т1-п1 , т2-п2 , т3-п3, т1-п1 , т2-п2 , т3-п3, т1-п1 , т2-п2 , т3-п3, и вдруг настаёт пиз*ц идёт т1- п3 , т2 - п2 , т3 - п1 , и опять т1-п1 , т2-п2 , т3-п3, т1-п1 , т2-п2 , т3-п3, т1-п1 , т2-п2 , т3-п3, т1- п3 , т2 - п2 , т3 - п1. Ну вообщем смысл я думаю понятен. Заранее благодарен.
0
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
29.06.2011, 09:52
C#
1
List<byte> Temp = new List<byte>();
Внутренний буфер должен быть глобальным, а он у вас создается при каждом считывании пакета и смысла не имеет. Глобальным он должен быть для сохранения частей от считанного не до конца пакета.
0
1 / 1 / 2
Регистрация: 01.06.2011
Сообщений: 161
29.06.2011, 11:42  [ТС]
вы думаете проблема в этом ?
0
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
29.06.2011, 13:09
Цитата Сообщение от gslim921 Посмотреть сообщение
вы думаете проблема в этом ?
Думаю именно в этом. Если придет 1-2 байта из 3-х (размер пакета я так понимаю 3), то они будут утеряны, и в следующее чтение обработчик посчитает конец последнего пакета за начало нового.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.06.2011, 13:09

График
Есть список. При нажатии на кнопку строится график (ось ОХ-номер элемента, ОУ-значение элемента)

График на C#
Нужно нарисовать график функции любой, координатную сетку сделал с помощью GDI+, теперь проблема нарисовать график. Как это проще сделать с...

График!
Есть список, в него задаются числовые значения. По нажатию кнопки строится график (ОХ-порядковый номер элемента, ОУ-значение элемента)...

График эллипса
Доброго времени суток. Мне нужно получить все натуральные точки, удовлетворяющим условию: x2/a2+y2/b2 =1 Проблема в том, что я не могу...

Построить график!
Можно ли стандартными средствами или другими построить график в С#? Точечный... помогите плз!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
46
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru