Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
21 / 20 / 7
Регистрация: 17.02.2011
Сообщений: 288
1
.NET 4.x

Куда пропал русский язык при передачи по RS-232

05.12.2011, 16:50. Просмотров 930. Ответов 1
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста как наделить программу возможностями передавать русский язык, пока передаешь английский, все нормально, только передаешь русский, программа ставит вопросы.
Я понимаю что нужно наверное как то два байта передавать, ни кто не подскажет как это делать.
Все реализовано в методе public void Read(), остальное чисто установки.
Заранее благодарю.
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
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;
using System.Threading;
 
namespace RS232Form
{
    public partial class Form1 : Form
    {
        public delegate void AddRichTextBox();
        static bool _continue;
        static SerialPort _serialPort;
        string message = "";
        string messageOut = "";
        public AddRichTextBox myDelegate;
        Form1 objForm1;
        public Form1()
        {
 
            myDelegate = new AddRichTextBox(AddRichTextBoxMethod);
            InitializeComponent();
        }
       
 
        private void Form1_Load(object sender, EventArgs e)
        {
            richTextBox1.Text = "";
            string name;
            string message;
            StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
 
            Thread readThread = new Thread(Read);
 
            // Create a new SerialPort object with default settings.
            _serialPort = new SerialPort();
 
            // Allow the user to set the appropriate properties.
            _serialPort.PortName = SetPortName(_serialPort.PortName); 
            _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate); 
            _serialPort.Parity = SetPortParity(_serialPort.Parity);
            _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
            _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
            _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);
 
            // Set the read/write timeouts
            _serialPort.ReadTimeout = 500;
            _serialPort.WriteTimeout = 500;
            _serialPort.Open();
            _continue = true;
            name = "My potok";
         
            message = "Send";
            readThread.Start();
            _serialPort.WriteLine(String.Format("<{0}>: {1}", name, message));
 
            readThread.Join();
            _serialPort.Close();
           // this.richTextBox2.Text = messageOut;
            //myDelegate();
        }
 
        public void AddRichTextBoxMethod()
        {
            this.richTextBox2.Text = messageOut;
        }
 
        public void Read()
        {
            while (messageOut == "")
            {
                try
                {
                    messageOut = _serialPort.ReadLine();
                }
                catch (TimeoutException) { messageOut = "dontSend"; }
            }
          this.BeginInvoke(myDelegate);
          
        }
 
        public string SetPortName(string defaultPortName)
        {
            string portName;
 
            Console.WriteLine("Available Ports:");
            foreach (string s in SerialPort.GetPortNames())
            {
                this.richTextBox1.Text += s + "\r\n";
            }
 
            portName = "COM3";
 
            if (portName == "")
            {
                portName = defaultPortName;
            }
            return portName;
        }
        public int SetPortBaudRate(int defaultPortBaudRate)
        {
            string baudRate = "";
            this.richTextBox1.Text += defaultPortBaudRate + "\r\n";
 
            baudRate = defaultPortBaudRate.ToString();
            return int.Parse(baudRate);
        }
        public Parity SetPortParity(Parity defaultPortParity)
        {
            string parity;
 
 
            foreach (string s in Enum.GetNames(typeof(Parity)))
            {
                richTextBox1.Text += s + "\r\n";
 
            }
            parity = defaultPortParity.ToString();
 
            return (Parity)Enum.Parse(typeof(Parity), parity);
        }
        public int SetPortDataBits(int defaultPortDataBits)
        {
            string dataBits;
 
            richTextBox1.Text += "Data Bits" + "=" + defaultPortDataBits + "\r\n";
 
            dataBits = defaultPortDataBits.ToString();
            return int.Parse(dataBits);
        }
 
        public StopBits SetPortStopBits(StopBits defaultPortStopBits)
        {
            string stopBits;
            richTextBox1.Text += "Stop Bits:" + defaultPortStopBits.ToString() + "\r\n";
 
            Console.Write("Stop Bits({0}):", defaultPortStopBits.ToString());
 
            stopBits = defaultPortStopBits.ToString();
            return (StopBits)Enum.Parse(typeof(StopBits), stopBits);
        }
 
        public Handshake SetPortHandshake(Handshake defaultPortHandshake)
        {
            string handshake;
 
 
            foreach (string s in Enum.GetNames(typeof(Handshake)))
            {
                richTextBox1.Text += s + "\r\n";
 
            }
            handshake = defaultPortHandshake.ToString();
 
            return (Handshake)Enum.Parse(typeof(Handshake), handshake);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            _continue = false;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
 
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2011, 16:50
Ответы с готовыми решениями:

Пропал русский язык
Vsem privet. Y menya takaya problema, to chto propal russkiy s kompa(t.e ne mogy na nem pechatat)....

Пропал русский язык в громкости
Подскажите как восстановить русский язык?

Пропал русский язык на компе
Столкнулся с такой проблемой: пропал русский язык на компе, пробовал через панель управления ( язык...

Куда девался русский язык?
После того как я обновил Visual Studio у меня пропал русский язык в подсказках... как его вернуть?...

1
Эксперт .NET
14697 / 11111 / 2919
Регистрация: 17.09.2011
Сообщений: 18,650
05.12.2011, 17:02 2
C#
1
2
_serialPort = new SerialPort();
_serialPort.Encoding = Encoding.Unicode;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2011, 17:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Пропал русский язык, компьютер тормозит
Пропал русский язык, компьютер тормозит, тема стола не меняется. Прошу помощи.

Ubuntu 16.04 пропал русский язык. Что делать?
ubuntu 16.04 пропал русский язык. Что делать? пишу по русски вообще ничего не пишется. если...

Русский язык при работе с бд
Перерыл кучу примеров работой с базами sql и mysql ,но так и не нашел как сделать ввод русского...

Куда именно копируется значения аргумента при передачи в функцию?
Куда именно копируется значения аргумента при передачи в функцию? И куда(где:) ) деваются эти копии...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.