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

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

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

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

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

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


 
Опции темы

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

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

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

...и да, если хотите красиво отобразить без смещений по ширине символов, то установите в визуальном компоненте - моноширный шрифт.
__________________
Белорусский журнал «Радиолюбитель»
Youtube LaboratoryW
UR3QQJ
raxp вне форума  
Сказали "Спасибо" raxp
rusyvochka (13.02.2021)
Непрочитано 12.02.2021, 20:53  
rusyvochka
Гражданин KAZUS.RUN
 
Аватар для 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.RUN
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 838
Сказал спасибо: 379
Сказали Спасибо 942 раз(а) в 451 сообщении(ях)
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; i ‹ bytes.Length / 8 - 8; i++)
{
    for (int j = 0; j ‹ 8; j++)
    {
        string new_text = bytes[i * 8 + 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.RUN
 
Аватар для 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.RUN
 
Аватар для 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.RUN
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 838
Сказал спасибо: 379
Сказали Спасибо 942 раз(а) в 451 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Здесь обсуждается C#?

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

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

Последний раз редактировалось eddy; 18.02.2021 в 12:30.
eddy вне форума  
 
Опции темы

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

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


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