Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2015, 12:52   #1
Evgen2015
Новичок
Джуниор
 
Регистрация: 28.10.2015
Сообщений: 2
По умолчанию не выполняется действие?

Добрый день
Не как не могу сообразить почему не работает код.
На сом порт приходит цифра 100 сравниваем её и выводим в консоль сообщения.
Подскажите пожалуйста где ошибка в коде почему он не выполняет действия сравнения?

код 1:
Код:
using System;
using System.IO.Ports;
 
namespace ArduinoSerial
{
    class Program
    {
 
        SerialPort sp = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One);
 
 
        static void Main(string[] args)
        {
            new Program();
 
        }
 
        private Program()
        {
            sp.DataReceived += new SerialDataReceivedEventHandler(OnDataReceived);
            sp.Open();
            Console.Read();
        }
 
        private void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            Console.WriteLine(sp.ReadExisting());
 
 
 
           string name = sp.ReadExisting();
 
            if (name == "100") Console.WriteLine("OK" + name);
 
        }
 
 
    }
}

код 2:

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.IO.Ports;
using System.Threading;
using System.Threading.Tasks;
 
namespace ConsoleApplication4 {
    class Program {
        static void Main(string[] args) {
            string portName = "COM5";
            Task.Factory.StartNew(() => StartListen(portName));
            Console.ReadLine();
        }
        static void StartListen(string portName) {
            using (SerialPort port = new SerialPort(portName, 9600)) {
                port.Open();
                while (true) {
                    if (port.BytesToRead != 0) {
                        string result = port.ReadExisting();
                        if (result == "100") {
                            Console.WriteLine("Name: {0}", result);
                        }
                    }
                    Thread.Sleep(500);
                }
            }          
        }
    }
}
Evgen2015 вне форума Ответить с цитированием
Старый 13.11.2015, 13:23   #2
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Где не сравнивает? вы дебагером пробовали смотреть?
come-on вне форума Ответить с цитированием
Старый 13.11.2015, 14:34   #3
Evgen2015
Новичок
Джуниор
 
Регистрация: 28.10.2015
Сообщений: 2
По умолчанию

Всё спасибо там перенос строки, а я его не учёл всё заработало!
Evgen2015 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Действие заблокировано govorun1 Microsoft Office Access 1 03.11.2014 15:18
Действие Nonesa C# (си шарп) 21 01.06.2014 09:55
Не повторяется действие waterya Общие вопросы Delphi 17 17.06.2010 15:24
выполнить действие. IVANSour Общие вопросы Delphi 6 01.02.2009 22:53