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

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

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

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

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

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


 
Опции темы
Непрочитано 09.02.2021, 00:17  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

В С++ совсем в потоках утонул.
Но не об этом...
Код:
                byte[] array = new byte[str.Length];
                for (int i = 0; i ‹ str.Length; i++)
                    array[i] = Convert.ToByte(Convert.ToString(str[i]), 16);
Не будет ли проще массив отобразить в rtbDisplay?
Ну и по приходу в порт запроса... не в том формате (пока) отправляется.
Путаюсь.
Код:
MOVLW	0xA5
MOVWF	TXREG
буквы другие
Реклама:
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 09.02.2021, 00:36  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,653
Сказал спасибо: 117
Сказали Спасибо 815 раз(а) в 592 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Еще раз настойчиво прошу таки позвать компетентного человека, который смог бы вменяемо описать суть проблемы!
А то теперь еще и ассемблер пошел…
И да, в сях печать делается элементарно:
Код:
for(int i = 0; i ‹ 16; ++int) printf(" %02x", *ptr++);
(ну, понятно, что еще надо будет добавить печать адреса).
Но таки еще раз напомню, что существует 100500 вариантов терминалов и HEX-просмотрщиков/редакторов. Под любой тип операционок/прошивок (хоть под гей-ось!). И наверняка найдется какая-нибудь готовая утилита, полностью способная сделать то, что вам надо. А нет — так методом UNIX-way можно из неськолких утилит нужное сварганить, прогоняя выхлоп один через пайп во вход другой.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

Последний раз редактировалось eddy; 09.02.2021 в 00:39.
eddy вне форума  
Непрочитано 09.02.2021, 00:52  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Сообщение от eddy Посмотреть сообщение
позвать компетентного человека, который смог бы вменяемо описать суть проблемы!
Ну нет такого, я сам "изобретаю".
Я уже не знаю, как описывать ТЗ...
Есть комп. Есть железка на PIC.
Железка просит по СОМ порту байт - компьютер отсылает один байт, ждёт запроса следующего.
На компьютере надо открыть hex файл, увидеть содержимое и разрешить отправку.
Хватило бы проекта C# с двумя кнопками:
открыть файл (уже есть), отобразить его путь (есть) и содержимое (есть только в текстовом формате, надо отображать hex).
И вторая кнопка - "отправить один байт". Надеюсь - дальше сам.
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 09.02.2021, 00:54  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

for(int i = 0; i ‹ 16; ++int) printf(" %02x", *ptr++);
это для консоли?
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 09.02.2021, 23:33  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Код:
        private void OpenFile_Click(object sender, EventArgs e)
        {

            openFileDialog1.Filter = "HEX files (*.HEX)|*.HEX|All files (*.*)|*.*";
            string str = "";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                try
                {
                    string path = openFileDialog1.FileName;
//                    rtbDisplay.Text = path;
                    StreamReader streamReader = new StreamReader(path);

                    while (!streamReader.EndOfStream)
                    {
                        str += streamReader.ReadLine(); //В переменную str по строчно записываем содержимое файла
                    }
 //                   rtbDisplay.Text = str;
                }
                catch // ошибка
                {
                    rtbDisplay.Text = "Ошибка открытия файла!";
                }
               rtbDisplay.ForeColor = Color.Black;

                char[] bytes = str.ToCharArray();
                for (int i = 0; i ‹ bytes.Length; i++)
                    rtbDisplay.Text += Convert.ToString(bytes[i])+"\r"; // контрольная точка
       private void SendByt_Click(object sender, EventArgs e)
            
            
        {
            t_bytes =Convert.ToString(bytes[0]);
            rtbDisplay.Clear();
            rtbDisplay.Text = t_bytes;
            serialPort1.Write(t_bytes);

        }
Вот здесь выдаёт ошибку:

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

и еще,

Код:
rtbDisplay.Text += Convert.ToString(bytes[i + j]) + " ";
Это показывает ASCII, а надо HEX. Уморило уже не по детски.
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 10.02.2021, 01:00  
anatol378
Почётный гражданин KAZUS.RU
 
Аватар для anatol378
 
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
anatol378 на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

rusyvochka, так в левой колонке редактора и так вывод в HEX формате.
Если его обработать по определенному алгоритму получишь файл с расширением -abcdef.hex
По COM порту не передаются данные в HEX формате, (т.к. содержат служебные команды) а в ASCII. Поэтому примени таблицы конвертации HEX-ASCII-HEX. Их всего 16 символов....0=30, 1=31...
__________________
Решил посоветовать, да забыл что...
anatol378 вне форума  
Непрочитано 10.02.2021, 01:01  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 748
Сказал спасибо: 365
Сказали Спасибо 822 раз(а) в 386 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

C#

Если нужно строковое представление числа в НЕХ-формате, то подойдет спецификатор формата Xn, где n - число цифр в желаемом строковом представлении числа (byte, short, int, long и т.д.).

Например, если str - это строковая переменная, то строковое представление числа можно получить так:

для энного элемента байтового массива byte_array:
str = byte_array[n].ToString("X2");

для байтовой переменной byte_var:
str = byte_var.ToString("X2");

для 32-битовой переменной int32_var:
str = int32_var.ToString("X4");

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

Ну там ведь по-русски написано и по-русски же дана справка по решению проблемы. Ну это ж объектно-ориентированный язык то.
NewWriter вне форума  
Непрочитано 10.02.2021, 17:11  
raxp
Почётный гражданин KAZUS.RU
 
Регистрация: 28.05.2010
Сообщений: 1,118
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
raxp на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Цитата:
Железка просит по СОМ порту байт - компьютер отсылает один байт, ждёт запроса следующего.
На компьютере надо открыть hex файл, увидеть содержимое и разрешить отправку
ж.Радиолюбитель, 2009, #11 "MODBUS на привязи. Конвертор архивов" / статья посвящена скачиванию архивов с ПЛК (на Atмега¹₂₈) по RS-485 на PC по командам с верхнего уровня (используется MODBUS, не суть важно) и конвертации архивов в Excel.

p.s.: движок форума интерпретирует цифру восемь как смайлик)
__________________
Белорусский журнал «Радиолюбитель»
Youtube LaboratoryW
UR3QQJ

Последний раз редактировалось raxp; 10.02.2021 в 17:18.
raxp вне форума  
 

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

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

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, время: 22:57.


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