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

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

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

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

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

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


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

Сообщение от raxp Посмотреть сообщение
так что тут сложного?
Даже прочитать сложно! Понять то понятно, но в буквах - и браться не буду.
Реально не осилю.
4К для PICа за день - влёгкую...
Три десятка строк C# - неделя. И до ума не довёл, и не знаю, как. ;(
Да-да: не знаю.
Реклама:
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 12.02.2021, 11:13  
raxp
Почётный гражданин KAZUS.RU
 
Регистрация: 28.05.2010
Сообщений: 1,118
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
raxp на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Сообщение от rusyvochka
мне бы носом...

вот так отображаем его в hex формате в ListBox
...вот вам чтение бинарника и отображение в переопределенном TListBox (разбить на дополнительные колонки легко):
Код:
procedure Tlink.hscroll2(Sender: TObject);
var
  Fs: TFileStream;
  StartByte: Integer;
  BytesCount, MaxBytesCount: Integer;
  Ar: array[1..1000] of Byte;
  s: string;
  I: Integer;
  C: Byte;
  Pos: Integer;
  LastAdr: Integer;
begin
 if not fileexists(binname) then exit;

 Fs:= TFileStream.Create(binname, fmOpenRead);
 with (sender as tscrollbar) do begin
  if Max = 1 then StartByte := 0 else
    StartByte := Position * byteswidth2 - byteswidth2;

  MaxBytesCount := MaxLineCount2 * byteswidth2;
  if fSize2 - StartByte ›= MaxBytesCount then BytesCount := MaxBytesCount else
    BytesCount := fSize2 - StartByte;

  hv2.Clear;
  Fs.Seek(StartByte, soFromBeginning);
  Pos := Fs.Position;
  Fs.Read(Ar, BytesCount);

  C := 0;
  LastAdr := 0;

  for I := 1 to BytesCount do begin
    Inc(C);
    S := S + IntToHex(Ar[I], 2);

    if (C = byteswidth2) then begin
      Inc(Pos, C);
      hv2.Items.Add(IntToHex(Pos - byteswidth2, 8) + ':' + S);
      S := '';
      C := 0;
      LastAdr := Pos;
    end;

    if (I = BytesCount) and (C › 0) then begin
      hv2.Items.Add(IntToHex(LastAdr, 8) + ':' + S);
      Break;
    end;
  end;

 end;
 Fs.Free 
end;
MaxLineCount2 - высчитываете, исходя из текущей высоты визуального listbox (т.е. пользовательских настроек, разрешения экрана).
byteswidth2 - количество отображаемых в колонке байт.

Результат:
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 0
Размер:	5.1 Кб
ID:	160634

...в шарп переведете сами.

Сообщение от rusyvochka
https://qna.habr.com/q/199341
и да. Тут обратное действие: всё время принимать. Такого, почему-то много в инете.
Сообщение от rusyvochka
вот так пихаем 4-ый (5-ый... n-ый) элемент строки в СОМ,
а это тогда что:
Код:
// Пишем отправляеммый пакет
                            _Serial.Write(wr_buf, 0, 2);
                            // ждем пока весь пакет уйдет или запросят отбой
                            while ((_TransferWorker.CancellationPending == false) && (_Serial.BytesToWrite != 0)) ;
                            // попытка поймать заголовок
                            try
                            {
                                int dummy = 0, lenghtReadingPacket;
                                bool end = false;
                                int counter =0;
                                while (end != true){
                                    dummy = _Serial.BytesToRead;
                                    if (dummy ‹= 3)
                                    {
                                        System.Threading.Thread.Sleep(1);
                                        if (counter++ › _Serial.ReadTimeout)
                                        {
                                            _dataLostArgs.ErrorPreambulaLen++;
                                            throw new TimeoutException("Preambula not full!");
                                        }
                                    }
                                    else end = true;
                                }
__________________
Белорусский журнал «Радиолюбитель»
Youtube LaboratoryW
UR3QQJ
raxp вне форума  
Сказали "Спасибо" raxp
rusyvochka (12.02.2021)
Непрочитано 12.02.2021, 11:18  
raxp
Почётный гражданин KAZUS.RU
 
Регистрация: 28.05.2010
Сообщений: 1,118
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
raxp на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

...и да, если хотите красиво отобразить без смещений по ширине символов, то установите в визуальном компоненте - моноширный шрифт.
__________________
Белорусский журнал «Радиолюбитель»
Youtube LaboratoryW
UR3QQJ
raxp вне форума  
Сказали "Спасибо" raxp
rusyvochka (13.02.2021)
Непрочитано 12.02.2021, 20:53  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Можно попросить: без лирики, без нравоучений, без ссылок на литературу и примеры, просто:
что и где здесь дабавить/изменить, чтобы отображалось в HEX?
Ну нет сил моих больше! Или ошибка - или кракозяблы.

Код:
   char[] bytes = str.ToCharArray(); // str - загруженый файл hex
            rtbDisplay.Clear();
            rtbDisplay.ForeColor = Color.Black;
            for (int i = 0; i ‹ bytes.Length/8-8; i++)
            {
                for (int j = 0; j ‹ 8; j++)
                {
                    string new_text = bytes[i * 8 + j].ToString();
                    rtbDisplay.Text += new_text+" ";
                 }
                rtbDisplay.Text += "\n";
            }
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 13.02.2021, 00:04  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 731
Сказал спасибо: 363
Сказали Спасибо 807 раз(а) в 379 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

rusyvochka, попробуйте обработчик кнопки с таким кодом:

PHP код:
var dlg = new OpenFileDialog()
{
    
CheckFileExists true,
    
ValidateNames true,
    
Filter "All files (*.*)|*.*|HEX files (*.HEX)|*.HEX",
    
FileName string.Empty,
};

if (
dlg.ShowDialog() != DialogResult.OK)
    return;

byte[] bytes System.IO.File.ReadAllBytes(dlg.FileName);

rtbDisplay.Clear();
rtbDisplay.ForeColor Color.Black;
for (
int i 0‹ bytes.Length 8i++)
{
    for (
int j 0‹ 8j++)
    {
        
string new_text bytes[j].ToString("X2");
        
rtbDisplay.Text += new_text " ";
    }
    
rtbDisplay.Text += "\n";

И, честно говоря, не совсем понятно насчет формата входного файла.
Нужен формат Intel HEX (который сам по себе текстовый) или же бинарник для показа содержимого в шестнадцатеричном виде?

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

Неужели так сложно было подсказать?
Я писал: это должно быть очень просто!
Код:
for (int i = 0; i ‹ values.Length / 8 - 8; i++)
            {
                for (int j = 0; j ‹ 8; j++)
                {
                    string new_text =Convert.ToInt16(bytes[i * 8 + j]).ToString("X2");
                    rtbDisplay.Text += new_text + " ";
                }
                rtbDisplay.Text += "\n";
            }
/три дня! Остальное тоже работает!/
"Спасибо" ¿¡¿ Тема закрыта.
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 13.02.2021, 00:18  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Сообщение от j-Roger Посмотреть сообщение
формата входного файла.
*.eta если о чём-то скажет. Я стремился увидеть то, что вижу в редакторе, но в своей форме. Я это увидел. Сами данные в преобразовании не нуждаются - PIC между перекурами их кромсает на полубайты и синхронно отправляет в конечку со служебными приписками. На запросы от PIC тоже - только реакция. Ну а как и что спрашивает/выглядит - мне без разницы: соотв сообщение во втором Текст-боксе. PICу прогу сам писал. За вечер.
А теперь от нервов: Разве это решается в течении трёх дней поисков, ожидания и кривых подсказок?
Зато - 5!!!! страниц воды налили!
В очередной раз!
/текстовое спасибо и на-не-на, отозвавшиеся дельными советами - спасибо в статистике/.
__________________
Смотрящий под ноги - звёзды видит в лужах.

Последний раз редактировалось rusyvochka; 13.02.2021 в 00:21.
rusyvochka вне форума  
Непрочитано 13.02.2021, 00:29  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 731
Сказал спасибо: 363
Сказали Спасибо 807 раз(а) в 379 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

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


Вот, как бы так.
И в эмуляторе и в железе присутствует баг:
PIC с интервалом 1 сек отсылает 0х55 - "признак присутствия, связи", так вот
Если запустить форму, а потом подать питание на контроллер - всё гладко;
Если контроллер был включен, то есно в буфере уже накидано по количеству секунд информации. В этом случае компьютер не по детски начинает тупить.
Попробовал добавить
Код:
private void OpenPort_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort1.Open();
                serialPort1.DiscardInBuffer();
                ................
Не помогло. Чего посоветуют гуру?
__________________
Смотрящий под ноги - звёзды видит в лужах.

Последний раз редактировалось rusyvochka; 18.02.2021 в 12:04.
rusyvochka вне форума  
Непрочитано 18.02.2021, 12:27  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,643
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

Сообщение от j-Roger Посмотреть сообщение
Ну хоть срача в теме нет, и то хорошо
Да просто глядя на этот трешняк (хотя более подходящим было бы нецензурное слово), вообще охреневаешь настолько, что даже ничего написать не можешь…
Я вот представил себе, как решил бы заняться ветеринарией и на уличных зверях тренировался, попутно выкладывая фотки потрошенных зверюшек куда-нибудь на форум кардиохирургов с вопросами: "я правильно котика кастрировал?"
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

Последний раз редактировалось eddy; 18.02.2021 в 12:30.
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, время: 16:41.


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