Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 08.02.2021, 22:50  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Самое непонятное - ГДЕ отобразить? В микроконтроллере, на подключенном дисплее? Или в компе? Тогда причем тут микроконтроллер?

Вообще, это обычный тупой форматированный вывод через printf построчно, в ANSI-кодировке. В каждой строке: первый столбец: значение переменной адреса, затем ANSI-символ : (двоеточие), затем через пробел значения ваших полученных данных
Реклама:
NewWriter вне форума  
Непрочитано 08.02.2021, 22:51  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Я наверное не умею правильно формулировать вопросы
Мне из-за разового проекта изучать новую оболочку?
Я работаю под виндой, любой линукс - мимо меня.
Если это принципиально - лепится конвертер фалов для АУПП. Да-да: еще есть такое на планете Земля. Вручную - ну очень долго. Всё железо уже готово, вот с компа загнать дамп не могу.
Код:
               while (!streamReader.EndOfStream) //Цикл длиться пока не будет достигнут конец файла
                {
                    str += streamReader.ReadLine(); //В переменную str по строчно записываем содержимое файла
                }
//                rtbDisplay.Text = str; 
                char[] array = str.ToCharArray();
                string final = "";
                foreach (var i in array)
                {
                   string hex = String.Format("{0:X}", Convert.ToInt32(i));
                    final += hex.Insert(0,"") + " ";
                }
                final = final.TrimEnd();
                rtbDisplay.Text = final;
__________________
Смотрящий под ноги - звёзды видит в лужах.

Последний раз редактировалось rusyvochka; 08.02.2021 в 22:57.
rusyvochka вне форума  
Непрочитано 08.02.2021, 22:57  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Кто-нить вообще понял, чего хочет топикстартер? Красиво отобразить на компе байты, отправляемые в микроконтроллер с компа? Но зачем, черт подери? Открываем в любом двоичном редакторе и смотрим как хотим.
Миниатюры:
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 0
Размер:	14.2 Кб
ID:	160556  
NewWriter вне форума  
Непрочитано 08.02.2021, 23:01  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Сообщение от NewWriter Посмотреть сообщение
чего хочет топикстартер?
Открыть "на компе" hex файл, увидеть "красиво" содержимое, по запросу от пика - переслать один байт в СОМ-порт. Компьютеру ждать следующего запроса от пика или, при запросе "ошибки" повторить.
И так - до конца фала. В идеале - переданный байт "закрасить" или поменять цвет.
Так нормально?
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 08.02.2021, 23:02  
Driver_gv
Временная регистрация
 
Регистрация: 09.06.2006
Адрес: Lugansk
Сообщений: 75
Сказал спасибо: 0
Сказали Спасибо 26 раз(а) в 21 сообщении(ях)
Driver_gv на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Если знаете VB6, то на C# все похоже. Создаем пустой проект WindowsForms, добавляем SerialPort и OpenFileDialog из панели элементов. Пару кнопочек.

Загрузить файл текстовый, рабираем по строкам

Код:
        // **************************************************  **********************
        //   Загрузка файла 
        // **************************************************  **********************
        private void button3_Click(object sender, EventArgs e)
        {//download
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "HEX files (*.HEX)|*.HEX|All files (*.*)|*.*";

            if (openFileDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            try
            {
                // Читаем  файл
                string filename = openFileDialog.FileName;
                filelines = File.ReadAllLines(filename);
                //  textBox2.Text = filelines[0];
                Count_Strok = filelines.Length;
                label1.Text = "Load:" + Count_Strok.ToString();
                label1.BackColor = Color.White;
                Count_Data = Count_Strok;
                label1.Text = "Download";
                label1.BackColor = Color.Aqua;
                progressBar1.Maximum = Count_Strok;

                button3.Enabled = false;
                button4.Enabled = true;

                Count_Strok = 0;
                Command_5();
                
            }
            catch// (Exception ex)
            {
                // label1.Text = "Error";
                //Console.WriteLine("ERROR: невозможно открыть порт:" + e.ToString());
                textBox2.Text = "ERROR: невозможно открыть файл "; // + err.ToString();
                // textBox1.BackColor = Color.Red;
                return;
            }
        }
        // **************************************************  **********************

Отпрвка файла построчно по другой кнопочке.

Код:
        // **************************************************  **********************
        //   Отправка данных в контроллер 
        // **************************************************  **********************
        private void Command_5()
        {

            string ss;
            ss = filelines[Count_Strok];


            Count_Strok ++;
            serialPort1.Write( ss + "\r\n" );


            progressBar1.Value = Count_Strok;
            
            if (Count_Strok == Count_Data) 
            {
                Count_Strok = 0;
            }
            
        }
Все просто. Примеры взяты из рабочего проекта, наверно придется лишнее убрать, там прогресс бвр, текстовые окна....
__________________
picping.lg.ua
Driver_gv вне форума  
Сказали "Спасибо" Driver_gv
rusyvochka (08.02.2021)
Непрочитано 08.02.2021, 23:06  
Driver_gv
Временная регистрация
 
Регистрация: 09.06.2006
Адрес: Lugansk
Сообщений: 75
Сказал спасибо: 0
Сказали Спасибо 26 раз(а) в 21 сообщении(ях)
Driver_gv на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Прием - отдельный поток. Нужен таймер.
Код:
// **************************************************  **********************
        //   обработчик события приема байтов в порт - отдельный поток
        //   складывает в буффер, выставляет флаги
        // **************************************************  **********************

        
        string Reply = "";
        bool Flaf_Send_info = false;
        bool Flag_reply = false;

        private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {   //This is to handle the data when it comes
            //Do something on data received  ( Обработчик событий для DataReceived)


            //  узнаем сколько байт пришло
            int buferSize = serialPort1.BytesToRead;
            Byte[] buf = new Byte[buferSize]; //To store the received data.
            for (int i = 0; i ‹ buferSize; ++i)
            {
                //  читаем по одному байту
                byte bt = (byte)serialPort1.ReadByte();
                buf [i] = bt;
            }

            // печать
            byte[] bDefBytes = Encoding.Convert(Encoding.GetEncoding("windows-1251"), Encoding.Default, buf);
            string s = Encoding.Default.GetString(bDefBytes);
            //textBox2.Text = textBox2.Text + s; //нельзя ,не тот поток. 
            Reply = Reply + s;
            Flag_reply = true;
        }
        // **************************************************  **********************


        string ReplyALL = "";
        int Len_Text = 0;
        
        // **************************************************  **********************
        //   Проверка прнятых данных - ассинхронный поток по таймеру. 
        // **************************************************  **********************
        private void timer1_Tick(object sender, EventArgs e)
        {

            string  st = textBox3.Text;
            Len_Text = st.Length;

            if (Len_Text › 220)
            {
                textBox3.Text = st.Remove(0, Len_Text - 220 );
            }



            if (Flag_reply == false)
            {
                return;
            }

            Flag_reply = false;

            textBox3.Text= textBox3.Text  + Reply + "\r\n" ;


            if (Reply.Contains("\r"))  // 0x0d
            {
                ReplyALL =  Reply;
                Reply = "";
            }
            else
            {
                return;
            }
            textBox2.Text = ReplyALL;

                
            string s1 = ReplyALL;
            //   проверка принятых данных


            //------------
            if (s1.Contains("VER="))
            {
                button5.Enabled = true;
                //button4.Enabled = true;
                button3.Enabled = true;
                button4.Enabled = true;
                label1.Text = "Ready";
                label1.BackColor = Color.Gainsboro;
                timer2.Enabled = false;
                s1 = "";
                return;
            }
            s1 = "";
            //------------
        }
__________________
picping.lg.ua
Driver_gv вне форума  
Сказали "Спасибо" Driver_gv
rusyvochka (08.02.2021)
Непрочитано 08.02.2021, 23:15  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Сообщение от Driver_gv Посмотреть сообщение
Отпрвка файла построчно по другой кнопочке.
нужно - побайтно, по запросу от пика.
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 08.02.2021, 23:18  
Driver_gv
Временная регистрация
 
Регистрация: 09.06.2006
Адрес: Lugansk
Сообщений: 75
Сказал спасибо: 0
Сказали Спасибо 26 раз(а) в 21 сообщении(ях)
Driver_gv на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Там все есть. Есть прием и проверка данных. Измените на ваш запрос. и вызывайте отправку. Например вызвав тот же обработчик нажатия кнопки. Но в любом случае придется напрячь голову и сделать для себя.
__________________
picping.lg.ua
Driver_gv вне форума  
Непрочитано 08.02.2021, 23:40  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?


Вернулись к началу.
Это всё уже готово!
Отобразить и побайтно отправить по запросу....
Две страницы воды...
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 08.02.2021, 23:49  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,653
Сказал спасибо: 117
Сказали Спасибо 815 раз(а) в 592 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

rusyvochka, как говорится, грамотно составленное техзадание содержит в себе уже половину решения проблемы!
А вы даже техзадание составить не можете! Ну и как проблему решить? Я так понимаю, что в компьютерах вы вообще дилетант. Ну так попросите того, кто хоть чуть-чуть в них разбирается написать, что нужно!
Наверняка готовое уже существует (возможно, даже и под игровыми приставками!).

Что до си-диеза, то, думаю, вы вообще неправильно выбрали инструментарий! Ну и спрашиваете не там, где могут находиться любители этой дряни. Здесь обычно народ на С пишет, ну или на С++…
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

Последний раз редактировалось eddy; 08.02.2021 в 23:52.
eddy вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему здесь люди обсуждают такие простые вещи? Скайнет Отвлекитесь, эмбеддеры! 89 06.09.2015 23:40
Анекдот, анекдот ... (часть 1) DK Отвлекитесь, эмбеддеры! 8148 05.06.2013 23:14
Проверенная плат и PCB IDC2 лежит здесь. DL36 Микроконтроллеры, АЦП, память и т.д 1 20.02.2007 01:07
SPI карта памяти... Дима Микроконтроллеры, АЦП, память и т.д 29 19.07.2005 09:03
32 Mb flash spi Дима Микроконтроллеры, АЦП, память и т.д 17 14.08.2003 11:28


Часовой пояс GMT +4, время: 23:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot