Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Создать развязочный класс ("многие ко многим") для систематизации объектов классов https://www.cyberforum.ru/ csharp-beginners/ thread709363.html
Здравствуйте! Есть 2 класса А и В. Они включают в себя некоторый набор полей, свойств и методов. Необходимо создать развязочный класс (класс для реализации связи "многие ко многим") для систематизации объектов классов А и В. Объясните пожалуйста, как это сделать грамотно, если можно, с хоть какими-нибудь примерами на C#.
Существует ли аналог "структур" в C# C#
Доброго времени суток уважаемые! Думаю, многим из вас знакомо такое понятие, как "стуктура" из C/C++ (она же "запись" из Delphi/Pascal и т.д.). Одним из достоинства данного типа данных, была возможность практически не ограниченной манипуляции этими данными без дополнительных "костылей". То есть, эти самые структуры (и массив структур) можно было например, записывать в файл (затем считывать эти...
C# "Тамагочи" с использованием методов Здравствуйте! Столкнулся с такой задачей, нужно написать Тамагочи с использованием методов. 'Любимец' должен через определённый промежуток времени становиться ИЛИ грустным ИЛИ голодным ИЛИ заболевать. Через более длительный промежуток времени без вмешательства юзера - помирать. Пользователь, в свою очередь, с помощью команд представленных в меню может развеселить, накормить, вылечить, ну и GOD... https://www.cyberforum.ru/ csharp-beginners/ thread709340.html C# Задание размеров ячейки в Excel https://www.cyberforum.ru/ csharp-beginners/ thread709335.html
Помогите разобраться как, указывая размер ячейки в миллиметрах перевести их в екселевские пункты. в статье от майкрософта написано: Ширина столбца на листе может иметь любое значение от 0 до 255. Это значение соответствует числу знаков, которые могут быть отображены в ячейке, отформатированной с использованием стандартного шрифта. Ширина столбца по умолчанию составляет 8,43 знака. Если ширина...
C# Написать метод, входными параметрами которого являются две строки
Написать метод, входными параметрами которого являются две строки. Метод должен возвращать позицию первого вхождения в первую строку какого-либо символа из второй строки, либо -1, если первая строка не содержит ни одного символа, принадлежащего и второй строке. Заранее благодарю за решение.
C# Известны фамилия, имя и отчество пользователя. Найти его код личности Приветствую) Хэлп плиз!! :gsorry: Такая вот задача: Известны фамилия, имя и отчество пользователя. Найти его код личности. Правило получения кода личности: каждой букве ставится в соответствие число - порядковый номер буквы в алфавите. Эти числа складываются. Если полученная сумма не является однозначным числом, то цифры числа снова складываются и так до тех пор, пока не будет получено... https://www.cyberforum.ru/ csharp-beginners/ thread709278.html
C# Поместить в фал g количество автомобилей каждой марки https://www.cyberforum.ru/ csharp-beginners/ thread709235.html
потоки. Сведения об автомобиле состоят из его марки, номера и фамилии владельца. Дан файл f, содержащий сведения о нескольких автомобилях. Поместить в фал g количество автомобилей каждой марк. Сделать на в консоле
Определить количество абитуриентов, проживающих в г. Минске и сдавших экзамены со средним баллом C#
Добрый вечер,помогите с программой: Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О., адрес, оценки. Определить количество абитуриентов, проживающих в г. Минске и сдавших экзамены со средним баллом не ниже 4.5, вывести их фамилии в алфавитном порядке.
C# Вернуть строку, содержащую символьную запись числа в двоично-десятичной СС Помогите решить задачу в с#!!! Написать метод, входным параметром которого является целое число. Метод должен вернуть строку, содержащую символьную запись числа в двоично-десятичной системе счисления. То есть получить последовательность двоичных цифр, при этом первые 4 цифры дают запись первой (старшей) десятичной цифры числа, и т.д. https://www.cyberforum.ru/ csharp-beginners/ thread709106.html C# Найти самый часто встречающийся символ в строке https://www.cyberforum.ru/ csharp-beginners/ thread709075.html
Здрасьте) Нужно найти самый часто встречающийся символ в строке, которая вводится с клавиатуры. Как это сделать?
C# Как глобально объявить переменную для ее работы в разных методах
Подскажите пожалуйста как можно сделать переменную в классе контролера для того чтобы можно было брать из нее данные в разных методах. к примеру public class AdminController : Controller { static IList<OrderItem> resList = null; private int PageSize = 20;
C# Реализовать алгоритм нечеткого поиска на сайте здравствуйте. необходимо реализовать алгоритм нечеткого поиска на сайте. читала статью по этой теме, наиболее понятным показался метод триграмм для нечеткого поиска. может быть кто-то сталкивался уже с данной темой, где-то есть исходники или кто подскажет, с чего лучше начать )) заранее спасибо
4 / 4 / 2
Регистрация: 09.03.2012
Сообщений: 24
0

Вылет в синий экран при чтении данных из ком-порта - C# - Ответ 3755743

26.11.2012, 09:27. Показов 2032. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Накидал читалку данных из ком-порта, вроде ничего особенного не делаю, а по истечение минуты получаю вылет в синий экран смерти.
Читалка крайне жуткая, т.е. выглядит жутко. Там анализ бинарного протокола, и мне было его легче смотреть hex-строкой, оттого там всякие преобразования из строки в массив байтов и обратно. Потом бы избавился когда алгоритм нормальный накидаю.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
            DateTime now = DateTime.Now;            
            StringBuilder hexData = new StringBuilder(); //хранит бинарные строки (буфер)
            bool firstTime = true;
            while ((DateTime.Now - now).Minutes<10) //поставил тестить на 10 минут
            {
                byte[] message = new byte[GPSPort.BytesToRead];
                if (message.Length != 0)
                {
                    GPSPort.Read(message, 0, message.Length);
                    string hex = BitConverter.ToString(message).Replace("-", ""); 
                    hexData.Append(hex);
                    hex = hexData.ToString();
                    if (hex.IndexOf("A0A2") != -1)
                    {
                        hex = hex.Replace("A0A2", "/");
                        if (firstTime)
                        {
                            firstTime = false;
                            //избавляюсь от части до начала сообщения
                            hex = hex.Substring(hex.IndexOf("/"), hex.Length - hex.IndexOf("/"));
                        }
                        int lastInd = 0;
                        int prevInd = 0;
                        int countStartSymb = 0;
                        while ((lastInd = hex.IndexOf("/", lastInd)) != -1)
                        {
                            countStartSymb++;
                            if (countStartSymb == 2)
                            {
                                string messageHex = hex.Substring(prevInd, lastInd - prevInd).Replace("/", "");
                                hex = hex.Substring(lastInd);
                                lastInd = 0;
                                countStartSymb = 1;
                                byte[] tempBytes = HexToBytes(messageHex);
                                if (tempBytes.Length > 4)
                                {
                                    //читаю два байта длины сообщения
                                    int b = tempBytes[0];
                                    int b2 = tempBytes[1];
                                    int length = (((int)b) << 8) + b2 - 1; //считываем длину сообщения (-1 т.к. считываем отдельно номер сообщения)
                                    int id = tempBytes[2]; //номер сообщения
                                    byte[] payload = new byte[length];
                                    Array.Copy(tempBytes, 3, payload, 0, length);          
                                    //два байта чексуммы                        
                                    b = tempBytes[tempBytes.Length - 4]; 
                                    b2 = tempBytes[tempBytes.Length - 3];
                                    int checksum = ((int)b << 8) + b2;
                                    if (MessageBlock.GetChecksum(payload, id) == checksum)
                                    {
                                        if (tempBytes[tempBytes.Length - 2] == 0xB0 && tempBytes[tempBytes.Length - 1] == 0xB3)
                                        {
                                            //тут бы что-то было...
                                        }
                                    }
                                }
                            }
                            prevInd = lastInd;
                            lastInd++;
                        }
                        hexData = new StringBuilder(hex);
                    }
                }
            }
Вот, это всё, что тут есть. Вылетает почти сразу, и минуты не проходит.
Скорость компорта не менял, какая базовая в SerialPort стоит, такая и есть, SerialPort.ReadTimeout/SerialPort.WriteTimeout тоже не трогал.
Что я не так делаю? Вроде нагрузка не такая большая, чтобы вылетать в синий экран.
GPSPort - это класс, унаследованный от SerialPort, с парочкой моих методов. Но тут они не используются.

Добавлено через 10 минут
Вот остальные функции, которые там использовались.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        public byte[] HexToBytes(string hex)
        {
            byte[] arr = new byte[hex.Length / 2];
            for (int i = 0; i < hex.Length; i += 2)
            {
                arr[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
            }
            return arr;
        }
        public static int GetChecksum(byte[] payload, int id)
        {
            int checkSum = id;
            for (int i = 0; i < payload.Length; i++)
            {
                checkSum += payload[i];                
            }
            return checkSum & 0x7fff;
        }


Вернуться к обсуждению:
Вылет в синий экран при чтении данных из ком-порта C#
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2012, 09:27
Готовые ответы и решения:

Чтение из COM порта, При чтении из порта зависает read()
Каждому рано или поздно приходится программировать com порт. Вот и мой черед пришол. Я ужу умею:...

Переброс данных с ком порта в сеть
Вообщем нужно чтобы устройство подключенное к ком порту. с помощью программы или чего либо еще...

Отображение данных принятых с ком порта (C# windows forms)
Есть контроллер ардуино. Если на него послать через ком порт on контакт 1 будет замкнут, если off...

Ошибка при открытии ком порта
при попытке компиляции выдаёт ошибку: 4 G:\_1codegraf\COM_INIT.h:13 cannot convert 'char*' to...

2
26.11.2012, 09:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2012, 09:27
Помогаю со студенческими работами здесь

Ошибки при настройке ком-порта
Здравствуйте! Я пишу программу для ком-порта. Пытаюсь заполнить структуры DCB. Четность, количество...

Вылет при чтении в переменную
здравствуйте,вот такая проблема: var a1:Double; an:Double; n:Integer; r:Double; ...

Вылет при чтении из бинарного файла
Уважаемые товарищи, пожалуйста, помогите понять почему приведённые ниже функции, записывающие или...

Вылет и синий экран х000000ЕА и уходит на перезагрузку.
Доброго времени суток уважаемым форумчанам! проблема с компом состоит в следующем. Работал он у...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru