Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Работа с com портом / 15 сообщений из 15, страница 1 из 1
14.04.2015, 11:30
    #38935708
Madfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Добрый день выручайте

Использую С# 2008
на форму бросил serialPort

Никаким образом не получается записать данные в com port(вирутальный)

Код: 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.
private void button4_Click(object sender, EventArgs e)
         
        {
            serialPort2.PortName = "COM10"; //Указываем наш порт
            serialPort2.BaudRate = 9600; //указываем скорость.
            serialPort2.DataBits = 8;
            serialPort2.ReadTimeout = 500;
            serialPort2.WriteTimeout = 500;

            if (serialPort2.IsOpen == false)
            {
                serialPort2.Open();
                label7.Text = "Порт подключен";
                
               
                
            }
        }

        private void button5_Click(object sender, EventArgs e)
          {
              string message = "2345";
              serialPort2.WriteLine(String.Format(message));
           
             
          }

        private void button6_Click(object sender, EventArgs e)
        {
            label8.Text = serialPort2.ReadExisting();
        }



почему не работает не понятно

label8.Text = serialPort2.ReadExisting(); - выводит пустоту
...
Рейтинг: 0 / 0
14.04.2015, 12:47
    #38935795
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
А что ожидалось вместо пустоты в нормальном кейсе?
...
Рейтинг: 0 / 0
14.04.2015, 12:55
    #38935805
Madfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
mayton,

2345 - это ожидалось, но что то мне подсказывает что я что то совсем не так делаю
...
Рейтинг: 0 / 0
14.04.2015, 12:59
    #38935814
Madfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Madfish,

причем программой com port toolkit в режиме прослушки
я вижу значение 2345 - следовательно
либо оно в коме храниться не долго, либо по каким то причинам значение не считать
не работает serialPort2.ReadExisting() ....

это из программы сom port toolkit
000001 12:56:59.957 32 33 34 35 0A 2345.

Модератор: Тема перенесена из форума "C++".
...
Рейтинг: 0 / 0
14.04.2015, 13:31
    #38935863
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Madfish,

readexisting дает тебе то, что пришло на порт, а не то, что ушло.
...
Рейтинг: 0 / 0
14.04.2015, 13:36
    #38935874
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Madfish, вот тут по ссылке есть рабочий экземпл от производителя
https://msdn.microsoft.com/ru-ru/library/System.IO.Ports.SerialPort(v=vs.110).aspx

добейся того чтобы он у тебя заработал. А потом портируй в оконное приложение.
Аккуратно. Step-by-step.

Удачи.
...
Рейтинг: 0 / 0
14.04.2015, 13:44
    #38935889
Madfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
mayton,

пример этот я уже исковырял - мне теперь не понятно если я данные отправил - то как их забрать

со сканером штрих кода все как то проще
порт открыл пикнул штрих код - штрих код сидит в порте - я нажимаю readexisting - и все данные есть

вот теперь я даже и не знаю куда копать
данные то отправляются - именно с отправкой их я все правильно сделал
...
Рейтинг: 0 / 0
14.04.2015, 13:49
    #38935894
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Madfishmayton,

пример этот я уже исковырял - мне теперь не понятно если я данные отправил - то как их забрать


Вот ты если письмо кому-то отправил - то как его забрать?
...
Рейтинг: 0 / 0
14.04.2015, 13:52
    #38935898
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Madfishmayton,

пример этот я уже исковырял - мне теперь не понятно если я данные отправил - то как их забрать

Еще раз внимательно почитай свой текст. Подумай в чём смысл самого вопроса с точки
зрения информационных технологий?
...
Рейтинг: 0 / 0
14.04.2015, 14:37
    #38935990
Madfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
mayton,

Спасибо ;-) с этим я разобрался - подскаска с почтой помогла )))))

Единственное изначальная задача у меня такова

с com10 передать значение в com7 а далее это дело ( при неких условиях передать в com 1)

как же это дело реализовать в одной форме
...
Рейтинг: 0 / 0
14.04.2015, 14:58
    #38936021
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Madfishс com10 передать значение в com7 а далее это дело ( при неких условиях передать в com 1)


Еще раз - тебе извне приходят данные в com10, тебе их надо передать другому устройству, висящему на com7, и иногда третьему - в сom1? Опиши более конкретно, что там у тебя, а то пока что бред какой-то. Может, проще сеть RS485 организовать?
как же это дело реализовать в одной форме

Ну, делаешь три экземпляра SerialPort, и вперед.
...
Рейтинг: 0 / 0
14.04.2015, 16:45
    #38936219
Madfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Полный листинг програмулины

Код: 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.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports; 

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();              
        }

// открываем ком14 к нему присоединен сканер штрих кода
        private void button1_Click(object sender, EventArgs e)
        {
           
            foreach (string portname in SerialPort.GetPortNames())
            {
                comboBox1.Items.Add(portname); //добавить порт в список    
            }

            serialPort1.PortName = "COM14";
                           
                if (serialPort1.IsOpen == false)
                {
                    serialPort1.Open();
                    label2.Text = "Порт подключен";
                }
        }

// сканером считываем любой штрих код   - затем нажимаем эту кнопку и
// label1  изменяется на значение штрих кода 
// далее открываем  2 экземпляр comport порта(comport2)
// пытаемся туда что нибудь записать 

        private void button3_Click(object sender, EventArgs e)
        {
            string m= serialPort1.ReadExisting();
            label1.Text = m;

            if (serialPort2.IsOpen == false)
            {
                serialPort2.PortName = "COM10";
                serialPort2.ReadTimeout = 500;
                serialPort2.WriteTimeout = 500;
                serialPort2.Open();
                label7.Text = "Порт подключен";
                serialPort2.WriteLine(String.Format(m));
            }
        }


/// по каким то неведомым причинам ничего не считывается от сюда 
        private void button5_Click(object sender, EventArgs e)
          {
              label8.Text = serialPort2.ReadExisting();    
          }

        //ЗАКРЫВАЕМ ВСЕ ПОРТЫ
        private void button2_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen == true)

                serialPort1.Close();
            label2.Text = "Порт отключен";
            label1.Text = "NULL";


            if (serialPort2.IsOpen == true)

                serialPort2.Close();
            label7.Text = "Порт отключен";
            label8.Text = "NULL";
        }  
    }
}
...
Рейтинг: 0 / 0
15.04.2015, 09:26
    #38936760
Slava_Psk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Madfish, вот работающий пример обмена с устройством по Com порту (master-slave, запрос/ответ). Завершающий символ в ответе Slave chr(13) /конец строки/
Код: vbnet
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.
Public Class Form1
    Dim s, s1 As String
    Dim i_rec As Integer, i As Integer, j As Integer, k As Integer, chsum As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Проверка интерфейса RS232 с DK8020
        s = "$01T003HHH" + Chr(13)
        SerialPort1.Open()
        Do
        k=k+1
' Запрос- посылка
            SerialPort1.WriteLine(s)
            i_rec = 0
'Получение ответа, завершающий символ Chr(13)
            Do
                i = SerialPort1.ReadByte()
                s1 = s1 & Chr(i)
                i_rec = i_rec + 1
                If i_rec > 100 Then
                    MsgBox("Нет ответа")
                    i_rec = 0
                    GoTo mm2
                End If
            Loop Until i = 13 
            Label2.Text = s1
            Label2.Refresh()
        Loop Until k = 10 
mm2:

        SerialPort1.Close()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        j = 0
        k = 1
    End Sub

  
End Class
...
Рейтинг: 0 / 0
15.04.2015, 09:28
    #38936761
Slava_Psk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Только извиняюсь, не заметил про C#. Мой пример в VB.
...
Рейтинг: 0 / 0
16.04.2015, 13:56
    #38938279
Madfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с com портом
Со всем разобрался.
Всем спасибо.

Ошибка не в коде была , а в том что порт виртуальные созданный программай Virtual PORT
поддерживает только 2-а соединение. Для того что бы видеть, что я отправляю в порт, у меня висела еще программа COM Port Toolkit 4.0 вот именно по этому и не работало ...
Всем спасибо.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Работа с com портом / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]