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

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

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

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

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

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


 
Опции темы

Здесь обсуждается C#?

Непрочитано 09.02.2021, 00:17  
rusyvochka
Гражданин KAZUS.RUN
 
Аватар для 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.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
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.RUN
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Сообщение от eddy Посмотреть сообщение
позвать компетентного человека, который смог бы вменяемо описать суть проблемы!
Ну нет такого, я сам "изобретаю".
Я уже не знаю, как описывать ТЗ...
Есть комп. Есть железка на PIC.
Железка просит по СОМ порту байт - компьютер отсылает один байт, ждёт запроса следующего.
На компьютере надо открыть hex файл, увидеть содержимое и разрешить отправку.
Хватило бы проекта C# с двумя кнопками:
открыть файл (уже есть), отобразить его путь (есть) и содержимое (есть только в текстовом формате, надо отображать hex).
И вторая кнопка - "отправить один байт". Надеюсь - дальше сам.
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 09.02.2021, 00:54  
rusyvochka
Гражданин KAZUS.RUN
 
Аватар для 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.RUN
 
Аватар для 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.RUN
 
Аватар для 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.RUN
 
Аватар для anatol378
 
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,744
Сказал спасибо: 416
Сказали Спасибо 1,236 раз(а) в 550 сообщении(ях)
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.RUN
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 851
Сказал спасибо: 379
Сказали Спасибо 942 раз(а) в 451 сообщении(ях)
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
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Ну там ведь по-русски написано и по-русски же дана справка по решению проблемы. Ну это ж объектно-ориентированный язык то.
NewWriter вне форума  
Непрочитано 10.02.2021, 17:11  
raxp
Почётный гражданин KAZUS.RUN
 
Регистрация: 28.05.2010
Сообщений: 1,117
Сказал спасибо: 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 код Выкл.

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

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


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.