#pragma once
|
#pragma once
|
#include "stdafx.h"
|
#include "stdafx.h"
|
extern clsSystem system1;
|
extern clsSystem system1;
|
|
|
namespace emuThor {
|
namespace emuThor {
|
|
|
using namespace System;
|
using namespace System;
|
using namespace System::ComponentModel;
|
using namespace System::ComponentModel;
|
using namespace System::Collections;
|
using namespace System::Collections;
|
using namespace System::Windows::Forms;
|
using namespace System::Windows::Forms;
|
using namespace System::Data;
|
using namespace System::Data;
|
using namespace System::Drawing;
|
using namespace System::Drawing;
|
using namespace System::Runtime::InteropServices;
|
using namespace System::Runtime::InteropServices;
|
using namespace System::Threading;
|
using namespace System::Threading;
|
|
|
/// <summary>
|
/// <summary>
|
/// Summary for frmUart
|
/// Summary for frmUart
|
/// </summary>
|
/// </summary>
|
public ref class frmUart : public System::Windows::Forms::Form
|
public ref class frmUart : public System::Windows::Forms::Form
|
{
|
{
|
public:
|
public:
|
Mutex^ mut;
|
|
frmUart(Mutex^ m)
|
frmUart(Mutex^ m)
|
{
|
{
|
mut = m;
|
mut = m;
|
InitializeComponent();
|
InitializeComponent();
|
//
|
//
|
//TODO: Add the constructor code here
|
//TODO: Add the constructor code here
|
//
|
//
|
|
do_send = false;
|
}
|
}
|
|
|
protected:
|
protected:
|
/// <summary>
|
/// <summary>
|
/// Clean up any resources being used.
|
/// Clean up any resources being used.
|
/// </summary>
|
/// </summary>
|
~frmUart()
|
~frmUart()
|
{
|
{
|
if (components)
|
if (components)
|
{
|
{
|
delete components;
|
delete components;
|
}
|
}
|
}
|
}
|
private: System::Windows::Forms::TextBox^ txtToUart;
|
private: System::Windows::Forms::TextBox^ txtToUart;
|
protected:
|
protected:
|
|
|
protected:
|
protected:
|
private: System::Windows::Forms::Label^ label1;
|
private: System::Windows::Forms::Label^ label1;
|
private: System::Windows::Forms::Label^ label2;
|
private: System::Windows::Forms::Label^ label2;
|
private: System::Windows::Forms::TextBox^ txtFromUart;
|
private: System::Windows::Forms::TextBox^ txtFromUart;
|
|
|
private: System::Windows::Forms::Button^ button1;
|
|
private: System::Windows::Forms::Button^ button2;
|
private: System::Windows::Forms::Button^ button2;
|
private: System::Windows::Forms::Label^ label3;
|
private: System::Windows::Forms::Label^ label3;
|
private: System::Windows::Forms::TextBox^ txtCM0;
|
private: System::Windows::Forms::TextBox^ txtCM0;
|
private: System::Windows::Forms::TextBox^ txtCM1;
|
private: System::Windows::Forms::TextBox^ txtCM1;
|
|
|
|
|
private: System::Windows::Forms::Label^ label4;
|
private: System::Windows::Forms::Label^ label4;
|
private: System::Windows::Forms::TextBox^ txtCM2;
|
private: System::Windows::Forms::TextBox^ txtCM2;
|
|
|
private: System::Windows::Forms::Label^ label5;
|
private: System::Windows::Forms::Label^ label5;
|
private: System::Windows::Forms::TextBox^ txtCM3;
|
private: System::Windows::Forms::TextBox^ txtCM3;
|
|
|
private: System::Windows::Forms::Label^ label6;
|
private: System::Windows::Forms::Label^ label6;
|
private: System::Windows::Forms::Label^ label7;
|
private: System::Windows::Forms::Label^ label7;
|
private: System::Windows::Forms::TextBox^ txtTB;
|
private: System::Windows::Forms::TextBox^ txtTB;
|
private: System::Windows::Forms::TextBox^ txtLS;
|
private: System::Windows::Forms::TextBox^ txtLS;
|
|
|
|
|
private: System::Windows::Forms::Label^ label8;
|
private: System::Windows::Forms::Label^ label8;
|
private: System::Windows::Forms::TextBox^ txtMS;
|
private: System::Windows::Forms::TextBox^ txtMS;
|
|
|
private: System::Windows::Forms::Label^ label9;
|
private: System::Windows::Forms::Label^ label9;
|
private: System::Windows::Forms::TextBox^ txtIS;
|
private: System::Windows::Forms::TextBox^ txtIS;
|
|
|
|
|
private: System::Windows::Forms::Label^ label10;
|
private: System::Windows::Forms::Label^ label10;
|
private: System::Windows::Forms::TextBox^ txtIER;
|
private: System::Windows::Forms::TextBox^ txtIER;
|
private: System::Windows::Forms::Label^ label11;
|
private: System::Windows::Forms::Label^ label11;
|
private: System::Windows::Forms::TextBox^ txtFF;
|
private: System::Windows::Forms::TextBox^ txtFF;
|
|
|
private: System::Windows::Forms::Label^ label12;
|
private: System::Windows::Forms::Label^ label12;
|
private: System::Windows::Forms::TextBox^ txtMC;
|
private: System::Windows::Forms::TextBox^ txtMC;
|
|
|
private: System::Windows::Forms::Label^ label13;
|
private: System::Windows::Forms::Label^ label13;
|
private: System::Windows::Forms::TextBox^ txtCTRL;
|
private: System::Windows::Forms::TextBox^ txtCTRL;
|
|
|
private: System::Windows::Forms::Label^ label14;
|
private: System::Windows::Forms::Label^ label14;
|
private: System::Windows::Forms::TextBox^ txtFC;
|
private: System::Windows::Forms::TextBox^ txtFC;
|
|
|
private: System::Windows::Forms::Label^ label15;
|
private: System::Windows::Forms::Label^ label15;
|
private: System::Windows::Forms::Timer^ timer1;
|
private: System::Windows::Forms::Timer^ timer1;
|
private: System::Windows::Forms::CheckBox^ checkBox1;
|
private: System::Windows::Forms::CheckBox^ checkBox1;
|
private: System::Windows::Forms::CheckBox^ checkBox2;
|
private: System::Windows::Forms::CheckBox^ checkBox2;
|
private: System::Windows::Forms::CheckBox^ checkBox3;
|
private: System::Windows::Forms::CheckBox^ checkBox3;
|
private: System::Windows::Forms::TextBox^ txtRB;
|
private: System::Windows::Forms::TextBox^ txtRB;
|
|
|
private: System::Windows::Forms::Label^ label16;
|
private: System::Windows::Forms::Label^ label16;
|
private: System::ComponentModel::IContainer^ components;
|
private: System::ComponentModel::IContainer^ components;
|
|
|
private:
|
private:
|
/// <summary>
|
/// <summary>
|
/// Required designer variable.
|
/// Required designer variable.
|
/// </summary>
|
/// </summary>
|
private: bool do_send;
|
private: bool do_send;
|
|
private: Mutex^ mut;
|
|
|
#pragma region Windows Form Designer generated code
|
#pragma region Windows Form Designer generated code
|
/// <summary>
|
/// <summary>
|
/// Required method for Designer support - do not modify
|
/// Required method for Designer support - do not modify
|
/// the contents of this method with the code editor.
|
/// the contents of this method with the code editor.
|
/// </summary>
|
/// </summary>
|
void InitializeComponent(void)
|
void InitializeComponent(void)
|
{
|
{
|
this->components = (gcnew System::ComponentModel::Container());
|
this->components = (gcnew System::ComponentModel::Container());
|
this->txtToUart = (gcnew System::Windows::Forms::TextBox());
|
this->txtToUart = (gcnew System::Windows::Forms::TextBox());
|
this->label1 = (gcnew System::Windows::Forms::Label());
|
this->label1 = (gcnew System::Windows::Forms::Label());
|
this->label2 = (gcnew System::Windows::Forms::Label());
|
this->label2 = (gcnew System::Windows::Forms::Label());
|
this->txtFromUart = (gcnew System::Windows::Forms::TextBox());
|
this->txtFromUart = (gcnew System::Windows::Forms::TextBox());
|
this->button1 = (gcnew System::Windows::Forms::Button());
|
|
this->button2 = (gcnew System::Windows::Forms::Button());
|
this->button2 = (gcnew System::Windows::Forms::Button());
|
this->label3 = (gcnew System::Windows::Forms::Label());
|
this->label3 = (gcnew System::Windows::Forms::Label());
|
this->txtCM0 = (gcnew System::Windows::Forms::TextBox());
|
this->txtCM0 = (gcnew System::Windows::Forms::TextBox());
|
this->txtCM1 = (gcnew System::Windows::Forms::TextBox());
|
this->txtCM1 = (gcnew System::Windows::Forms::TextBox());
|
this->label4 = (gcnew System::Windows::Forms::Label());
|
this->label4 = (gcnew System::Windows::Forms::Label());
|
this->txtCM2 = (gcnew System::Windows::Forms::TextBox());
|
this->txtCM2 = (gcnew System::Windows::Forms::TextBox());
|
this->label5 = (gcnew System::Windows::Forms::Label());
|
this->label5 = (gcnew System::Windows::Forms::Label());
|
this->txtCM3 = (gcnew System::Windows::Forms::TextBox());
|
this->txtCM3 = (gcnew System::Windows::Forms::TextBox());
|
this->label6 = (gcnew System::Windows::Forms::Label());
|
this->label6 = (gcnew System::Windows::Forms::Label());
|
this->label7 = (gcnew System::Windows::Forms::Label());
|
this->label7 = (gcnew System::Windows::Forms::Label());
|
this->txtTB = (gcnew System::Windows::Forms::TextBox());
|
this->txtTB = (gcnew System::Windows::Forms::TextBox());
|
this->txtLS = (gcnew System::Windows::Forms::TextBox());
|
this->txtLS = (gcnew System::Windows::Forms::TextBox());
|
this->label8 = (gcnew System::Windows::Forms::Label());
|
this->label8 = (gcnew System::Windows::Forms::Label());
|
this->txtMS = (gcnew System::Windows::Forms::TextBox());
|
this->txtMS = (gcnew System::Windows::Forms::TextBox());
|
this->label9 = (gcnew System::Windows::Forms::Label());
|
this->label9 = (gcnew System::Windows::Forms::Label());
|
this->txtIS = (gcnew System::Windows::Forms::TextBox());
|
this->txtIS = (gcnew System::Windows::Forms::TextBox());
|
this->label10 = (gcnew System::Windows::Forms::Label());
|
this->label10 = (gcnew System::Windows::Forms::Label());
|
this->txtIER = (gcnew System::Windows::Forms::TextBox());
|
this->txtIER = (gcnew System::Windows::Forms::TextBox());
|
this->label11 = (gcnew System::Windows::Forms::Label());
|
this->label11 = (gcnew System::Windows::Forms::Label());
|
this->txtFF = (gcnew System::Windows::Forms::TextBox());
|
this->txtFF = (gcnew System::Windows::Forms::TextBox());
|
this->label12 = (gcnew System::Windows::Forms::Label());
|
this->label12 = (gcnew System::Windows::Forms::Label());
|
this->txtMC = (gcnew System::Windows::Forms::TextBox());
|
this->txtMC = (gcnew System::Windows::Forms::TextBox());
|
this->label13 = (gcnew System::Windows::Forms::Label());
|
this->label13 = (gcnew System::Windows::Forms::Label());
|
this->txtCTRL = (gcnew System::Windows::Forms::TextBox());
|
this->txtCTRL = (gcnew System::Windows::Forms::TextBox());
|
this->label14 = (gcnew System::Windows::Forms::Label());
|
this->label14 = (gcnew System::Windows::Forms::Label());
|
this->txtFC = (gcnew System::Windows::Forms::TextBox());
|
this->txtFC = (gcnew System::Windows::Forms::TextBox());
|
this->label15 = (gcnew System::Windows::Forms::Label());
|
this->label15 = (gcnew System::Windows::Forms::Label());
|
this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
|
this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
|
this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());
|
this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());
|
this->checkBox2 = (gcnew System::Windows::Forms::CheckBox());
|
this->checkBox2 = (gcnew System::Windows::Forms::CheckBox());
|
this->checkBox3 = (gcnew System::Windows::Forms::CheckBox());
|
this->checkBox3 = (gcnew System::Windows::Forms::CheckBox());
|
this->txtRB = (gcnew System::Windows::Forms::TextBox());
|
this->txtRB = (gcnew System::Windows::Forms::TextBox());
|
this->label16 = (gcnew System::Windows::Forms::Label());
|
this->label16 = (gcnew System::Windows::Forms::Label());
|
this->SuspendLayout();
|
this->SuspendLayout();
|
//
|
//
|
// txtToUart
|
// txtToUart
|
//
|
//
|
this->txtToUart->Location = System::Drawing::Point(31, 27);
|
this->txtToUart->Location = System::Drawing::Point(27, 67);
|
this->txtToUart->Multiline = true;
|
this->txtToUart->Multiline = true;
|
this->txtToUart->Name = L"txtToUart";
|
this->txtToUart->Name = L"txtToUart";
|
|
this->txtToUart->ScrollBars = System::Windows::Forms::ScrollBars::Both;
|
this->txtToUart->Size = System::Drawing::Size(318, 124);
|
this->txtToUart->Size = System::Drawing::Size(318, 124);
|
this->txtToUart->TabIndex = 0;
|
this->txtToUart->TabIndex = 0;
|
//
|
//
|
// label1
|
// label1
|
//
|
//
|
this->label1->AutoSize = true;
|
this->label1->AutoSize = true;
|
this->label1->Location = System::Drawing::Point(28, 11);
|
this->label1->Location = System::Drawing::Point(24, 51);
|
this->label1->Name = L"label1";
|
this->label1->Name = L"label1";
|
this->label1->Size = System::Drawing::Size(53, 13);
|
this->label1->Size = System::Drawing::Size(53, 13);
|
this->label1->TabIndex = 1;
|
this->label1->TabIndex = 1;
|
this->label1->Text = L"To UART";
|
this->label1->Text = L"To UART";
|
//
|
//
|
// label2
|
// label2
|
//
|
//
|
this->label2->AutoSize = true;
|
this->label2->AutoSize = true;
|
this->label2->Location = System::Drawing::Point(28, 169);
|
this->label2->Location = System::Drawing::Point(24, 209);
|
this->label2->Name = L"label2";
|
this->label2->Name = L"label2";
|
this->label2->Size = System::Drawing::Size(95, 13);
|
this->label2->Size = System::Drawing::Size(95, 13);
|
this->label2->TabIndex = 2;
|
this->label2->TabIndex = 2;
|
this->label2->Text = L"UART Transmitted";
|
this->label2->Text = L"UART Transmitted";
|
//
|
//
|
// txtFromUart
|
// txtFromUart
|
//
|
//
|
this->txtFromUart->Location = System::Drawing::Point(31, 185);
|
this->txtFromUart->Location = System::Drawing::Point(27, 225);
|
this->txtFromUart->Multiline = true;
|
this->txtFromUart->Multiline = true;
|
this->txtFromUart->Name = L"txtFromUart";
|
this->txtFromUart->Name = L"txtFromUart";
|
|
this->txtFromUart->ReadOnly = true;
|
|
this->txtFromUart->ScrollBars = System::Windows::Forms::ScrollBars::Both;
|
this->txtFromUart->Size = System::Drawing::Size(318, 124);
|
this->txtFromUart->Size = System::Drawing::Size(318, 124);
|
this->txtFromUart->TabIndex = 3;
|
this->txtFromUart->TabIndex = 3;
|
//
|
//
|
// button1
|
|
//
|
|
this->button1->Location = System::Drawing::Point(474, 353);
|
|
this->button1->Name = L"button1";
|
|
this->button1->Size = System::Drawing::Size(75, 23);
|
|
this->button1->TabIndex = 4;
|
|
this->button1->Text = L"OK";
|
|
this->button1->UseVisualStyleBackColor = true;
|
|
//
|
|
// button2
|
// button2
|
//
|
//
|
this->button2->Location = System::Drawing::Point(355, 25);
|
this->button2->Location = System::Drawing::Point(351, 65);
|
this->button2->Name = L"button2";
|
this->button2->Name = L"button2";
|
this->button2->Size = System::Drawing::Size(75, 23);
|
this->button2->Size = System::Drawing::Size(75, 23);
|
this->button2->TabIndex = 5;
|
this->button2->TabIndex = 5;
|
this->button2->Text = L"Send";
|
this->button2->Text = L"Send";
|
this->button2->UseVisualStyleBackColor = true;
|
this->button2->UseVisualStyleBackColor = true;
|
this->button2->Click += gcnew System::EventHandler(this, &frmUart::button2_Click);
|
this->button2->Click += gcnew System::EventHandler(this, &frmUart::button2_Click);
|
//
|
//
|
// label3
|
// label3
|
//
|
//
|
this->label3->AutoSize = true;
|
this->label3->AutoSize = true;
|
this->label3->Location = System::Drawing::Point(475, 72);
|
this->label3->Location = System::Drawing::Point(471, 112);
|
this->label3->Name = L"label3";
|
this->label3->Name = L"label3";
|
this->label3->Size = System::Drawing::Size(29, 13);
|
this->label3->Size = System::Drawing::Size(29, 13);
|
this->label3->TabIndex = 6;
|
this->label3->TabIndex = 6;
|
this->label3->Text = L"CM0";
|
this->label3->Text = L"CM0";
|
//
|
//
|
// txtCM0
|
// txtCM0
|
//
|
//
|
this->txtCM0->Location = System::Drawing::Point(510, 69);
|
this->txtCM0->Location = System::Drawing::Point(506, 109);
|
this->txtCM0->Name = L"txtCM0";
|
this->txtCM0->Name = L"txtCM0";
|
this->txtCM0->ReadOnly = true;
|
this->txtCM0->ReadOnly = true;
|
this->txtCM0->Size = System::Drawing::Size(39, 20);
|
this->txtCM0->Size = System::Drawing::Size(39, 20);
|
this->txtCM0->TabIndex = 7;
|
this->txtCM0->TabIndex = 7;
|
this->txtCM0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtCM0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// txtCM1
|
// txtCM1
|
//
|
//
|
this->txtCM1->Location = System::Drawing::Point(510, 95);
|
this->txtCM1->Location = System::Drawing::Point(506, 135);
|
this->txtCM1->Name = L"txtCM1";
|
this->txtCM1->Name = L"txtCM1";
|
this->txtCM1->ReadOnly = true;
|
this->txtCM1->ReadOnly = true;
|
this->txtCM1->Size = System::Drawing::Size(39, 20);
|
this->txtCM1->Size = System::Drawing::Size(39, 20);
|
this->txtCM1->TabIndex = 9;
|
this->txtCM1->TabIndex = 9;
|
this->txtCM1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtCM1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label4
|
// label4
|
//
|
//
|
this->label4->AutoSize = true;
|
this->label4->AutoSize = true;
|
this->label4->Location = System::Drawing::Point(475, 98);
|
this->label4->Location = System::Drawing::Point(471, 138);
|
this->label4->Name = L"label4";
|
this->label4->Name = L"label4";
|
this->label4->Size = System::Drawing::Size(29, 13);
|
this->label4->Size = System::Drawing::Size(29, 13);
|
this->label4->TabIndex = 8;
|
this->label4->TabIndex = 8;
|
this->label4->Text = L"CM1";
|
this->label4->Text = L"CM1";
|
//
|
//
|
// txtCM2
|
// txtCM2
|
//
|
//
|
this->txtCM2->Location = System::Drawing::Point(510, 121);
|
this->txtCM2->Location = System::Drawing::Point(506, 161);
|
this->txtCM2->Name = L"txtCM2";
|
this->txtCM2->Name = L"txtCM2";
|
this->txtCM2->ReadOnly = true;
|
this->txtCM2->ReadOnly = true;
|
this->txtCM2->Size = System::Drawing::Size(39, 20);
|
this->txtCM2->Size = System::Drawing::Size(39, 20);
|
this->txtCM2->TabIndex = 11;
|
this->txtCM2->TabIndex = 11;
|
this->txtCM2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtCM2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label5
|
// label5
|
//
|
//
|
this->label5->AutoSize = true;
|
this->label5->AutoSize = true;
|
this->label5->Location = System::Drawing::Point(475, 124);
|
this->label5->Location = System::Drawing::Point(471, 164);
|
this->label5->Name = L"label5";
|
this->label5->Name = L"label5";
|
this->label5->Size = System::Drawing::Size(29, 13);
|
this->label5->Size = System::Drawing::Size(29, 13);
|
this->label5->TabIndex = 10;
|
this->label5->TabIndex = 10;
|
this->label5->Text = L"CM2";
|
this->label5->Text = L"CM2";
|
//
|
//
|
// txtCM3
|
// txtCM3
|
//
|
//
|
this->txtCM3->Location = System::Drawing::Point(510, 147);
|
this->txtCM3->Location = System::Drawing::Point(506, 187);
|
this->txtCM3->Name = L"txtCM3";
|
this->txtCM3->Name = L"txtCM3";
|
this->txtCM3->ReadOnly = true;
|
this->txtCM3->ReadOnly = true;
|
this->txtCM3->Size = System::Drawing::Size(39, 20);
|
this->txtCM3->Size = System::Drawing::Size(39, 20);
|
this->txtCM3->TabIndex = 13;
|
this->txtCM3->TabIndex = 13;
|
this->txtCM3->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtCM3->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label6
|
// label6
|
//
|
//
|
this->label6->AutoSize = true;
|
this->label6->AutoSize = true;
|
this->label6->Location = System::Drawing::Point(475, 150);
|
this->label6->Location = System::Drawing::Point(471, 190);
|
this->label6->Name = L"label6";
|
this->label6->Name = L"label6";
|
this->label6->Size = System::Drawing::Size(29, 13);
|
this->label6->Size = System::Drawing::Size(29, 13);
|
this->label6->TabIndex = 12;
|
this->label6->TabIndex = 12;
|
this->label6->Text = L"CM3";
|
this->label6->Text = L"CM3";
|
//
|
//
|
// label7
|
// label7
|
//
|
//
|
this->label7->AutoSize = true;
|
this->label7->AutoSize = true;
|
this->label7->Location = System::Drawing::Point(378, 72);
|
this->label7->Location = System::Drawing::Point(374, 112);
|
this->label7->Name = L"label7";
|
this->label7->Name = L"label7";
|
this->label7->Size = System::Drawing::Size(21, 13);
|
this->label7->Size = System::Drawing::Size(21, 13);
|
this->label7->TabIndex = 14;
|
this->label7->TabIndex = 14;
|
this->label7->Text = L"TB";
|
this->label7->Text = L"TB";
|
//
|
//
|
// txtTB
|
// txtTB
|
//
|
//
|
this->txtTB->Location = System::Drawing::Point(413, 69);
|
this->txtTB->Location = System::Drawing::Point(409, 109);
|
this->txtTB->Name = L"txtTB";
|
this->txtTB->Name = L"txtTB";
|
this->txtTB->ReadOnly = true;
|
this->txtTB->ReadOnly = true;
|
this->txtTB->Size = System::Drawing::Size(39, 20);
|
this->txtTB->Size = System::Drawing::Size(39, 20);
|
this->txtTB->TabIndex = 15;
|
this->txtTB->TabIndex = 15;
|
this->txtTB->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtTB->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// txtLS
|
// txtLS
|
//
|
//
|
this->txtLS->Location = System::Drawing::Point(413, 124);
|
this->txtLS->Location = System::Drawing::Point(409, 164);
|
this->txtLS->Name = L"txtLS";
|
this->txtLS->Name = L"txtLS";
|
this->txtLS->ReadOnly = true;
|
this->txtLS->ReadOnly = true;
|
this->txtLS->Size = System::Drawing::Size(39, 20);
|
this->txtLS->Size = System::Drawing::Size(39, 20);
|
this->txtLS->TabIndex = 17;
|
this->txtLS->TabIndex = 17;
|
this->txtLS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtLS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label8
|
// label8
|
//
|
//
|
this->label8->AutoSize = true;
|
this->label8->AutoSize = true;
|
this->label8->Location = System::Drawing::Point(378, 127);
|
this->label8->Location = System::Drawing::Point(374, 167);
|
this->label8->Name = L"label8";
|
this->label8->Name = L"label8";
|
this->label8->Size = System::Drawing::Size(20, 13);
|
this->label8->Size = System::Drawing::Size(20, 13);
|
this->label8->TabIndex = 16;
|
this->label8->TabIndex = 16;
|
this->label8->Text = L"LS";
|
this->label8->Text = L"LS";
|
//
|
//
|
// txtMS
|
// txtMS
|
//
|
//
|
this->txtMS->Location = System::Drawing::Point(413, 150);
|
this->txtMS->Location = System::Drawing::Point(409, 190);
|
this->txtMS->Name = L"txtMS";
|
this->txtMS->Name = L"txtMS";
|
this->txtMS->ReadOnly = true;
|
this->txtMS->ReadOnly = true;
|
this->txtMS->Size = System::Drawing::Size(39, 20);
|
this->txtMS->Size = System::Drawing::Size(39, 20);
|
this->txtMS->TabIndex = 19;
|
this->txtMS->TabIndex = 19;
|
this->txtMS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtMS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label9
|
// label9
|
//
|
//
|
this->label9->AutoSize = true;
|
this->label9->AutoSize = true;
|
this->label9->Location = System::Drawing::Point(378, 153);
|
this->label9->Location = System::Drawing::Point(374, 193);
|
this->label9->Name = L"label9";
|
this->label9->Name = L"label9";
|
this->label9->Size = System::Drawing::Size(23, 13);
|
this->label9->Size = System::Drawing::Size(23, 13);
|
this->label9->TabIndex = 18;
|
this->label9->TabIndex = 18;
|
this->label9->Text = L"MS";
|
this->label9->Text = L"MS";
|
//
|
//
|
// txtIS
|
// txtIS
|
//
|
//
|
this->txtIS->Location = System::Drawing::Point(413, 176);
|
this->txtIS->Location = System::Drawing::Point(409, 216);
|
this->txtIS->Name = L"txtIS";
|
this->txtIS->Name = L"txtIS";
|
this->txtIS->ReadOnly = true;
|
this->txtIS->ReadOnly = true;
|
this->txtIS->Size = System::Drawing::Size(39, 20);
|
this->txtIS->Size = System::Drawing::Size(39, 20);
|
this->txtIS->TabIndex = 21;
|
this->txtIS->TabIndex = 21;
|
this->txtIS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtIS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label10
|
// label10
|
//
|
//
|
this->label10->AutoSize = true;
|
this->label10->AutoSize = true;
|
this->label10->Location = System::Drawing::Point(378, 179);
|
this->label10->Location = System::Drawing::Point(374, 219);
|
this->label10->Name = L"label10";
|
this->label10->Name = L"label10";
|
this->label10->Size = System::Drawing::Size(17, 13);
|
this->label10->Size = System::Drawing::Size(17, 13);
|
this->label10->TabIndex = 20;
|
this->label10->TabIndex = 20;
|
this->label10->Text = L"IS";
|
this->label10->Text = L"IS";
|
//
|
//
|
// txtIER
|
// txtIER
|
//
|
//
|
this->txtIER->Location = System::Drawing::Point(413, 202);
|
this->txtIER->Location = System::Drawing::Point(409, 242);
|
this->txtIER->Name = L"txtIER";
|
this->txtIER->Name = L"txtIER";
|
this->txtIER->Size = System::Drawing::Size(39, 20);
|
this->txtIER->Size = System::Drawing::Size(39, 20);
|
this->txtIER->TabIndex = 23;
|
this->txtIER->TabIndex = 23;
|
this->txtIER->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtIER->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label11
|
// label11
|
//
|
//
|
this->label11->AutoSize = true;
|
this->label11->AutoSize = true;
|
this->label11->Location = System::Drawing::Point(378, 205);
|
this->label11->Location = System::Drawing::Point(374, 245);
|
this->label11->Name = L"label11";
|
this->label11->Name = L"label11";
|
this->label11->Size = System::Drawing::Size(25, 13);
|
this->label11->Size = System::Drawing::Size(25, 13);
|
this->label11->TabIndex = 22;
|
this->label11->TabIndex = 22;
|
this->label11->Text = L"IER";
|
this->label11->Text = L"IER";
|
//
|
//
|
// txtFF
|
// txtFF
|
//
|
//
|
this->txtFF->Location = System::Drawing::Point(413, 228);
|
this->txtFF->Location = System::Drawing::Point(409, 268);
|
this->txtFF->Name = L"txtFF";
|
this->txtFF->Name = L"txtFF";
|
this->txtFF->Size = System::Drawing::Size(39, 20);
|
this->txtFF->Size = System::Drawing::Size(39, 20);
|
this->txtFF->TabIndex = 25;
|
this->txtFF->TabIndex = 25;
|
this->txtFF->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtFF->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label12
|
// label12
|
//
|
//
|
this->label12->AutoSize = true;
|
this->label12->AutoSize = true;
|
this->label12->Location = System::Drawing::Point(378, 231);
|
this->label12->Location = System::Drawing::Point(374, 271);
|
this->label12->Name = L"label12";
|
this->label12->Name = L"label12";
|
this->label12->Size = System::Drawing::Size(19, 13);
|
this->label12->Size = System::Drawing::Size(19, 13);
|
this->label12->TabIndex = 24;
|
this->label12->TabIndex = 24;
|
this->label12->Text = L"FF";
|
this->label12->Text = L"FF";
|
//
|
//
|
// txtMC
|
// txtMC
|
//
|
//
|
this->txtMC->Location = System::Drawing::Point(413, 254);
|
this->txtMC->Location = System::Drawing::Point(409, 294);
|
this->txtMC->Name = L"txtMC";
|
this->txtMC->Name = L"txtMC";
|
this->txtMC->Size = System::Drawing::Size(39, 20);
|
this->txtMC->Size = System::Drawing::Size(39, 20);
|
this->txtMC->TabIndex = 27;
|
this->txtMC->TabIndex = 27;
|
this->txtMC->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtMC->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label13
|
// label13
|
//
|
//
|
this->label13->AutoSize = true;
|
this->label13->AutoSize = true;
|
this->label13->Location = System::Drawing::Point(378, 257);
|
this->label13->Location = System::Drawing::Point(374, 297);
|
this->label13->Name = L"label13";
|
this->label13->Name = L"label13";
|
this->label13->Size = System::Drawing::Size(23, 13);
|
this->label13->Size = System::Drawing::Size(23, 13);
|
this->label13->TabIndex = 26;
|
this->label13->TabIndex = 26;
|
this->label13->Text = L"MC";
|
this->label13->Text = L"MC";
|
//
|
//
|
// txtCTRL
|
// txtCTRL
|
//
|
//
|
this->txtCTRL->Location = System::Drawing::Point(413, 280);
|
this->txtCTRL->Location = System::Drawing::Point(409, 320);
|
this->txtCTRL->Name = L"txtCTRL";
|
this->txtCTRL->Name = L"txtCTRL";
|
this->txtCTRL->Size = System::Drawing::Size(39, 20);
|
this->txtCTRL->Size = System::Drawing::Size(39, 20);
|
this->txtCTRL->TabIndex = 29;
|
this->txtCTRL->TabIndex = 29;
|
this->txtCTRL->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtCTRL->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label14
|
// label14
|
//
|
//
|
this->label14->AutoSize = true;
|
this->label14->AutoSize = true;
|
this->label14->Location = System::Drawing::Point(378, 283);
|
this->label14->Location = System::Drawing::Point(374, 323);
|
this->label14->Name = L"label14";
|
this->label14->Name = L"label14";
|
this->label14->Size = System::Drawing::Size(35, 13);
|
this->label14->Size = System::Drawing::Size(35, 13);
|
this->label14->TabIndex = 28;
|
this->label14->TabIndex = 28;
|
this->label14->Text = L"CTRL";
|
this->label14->Text = L"CTRL";
|
//
|
//
|
// txtFC
|
// txtFC
|
//
|
//
|
this->txtFC->Location = System::Drawing::Point(510, 176);
|
this->txtFC->Location = System::Drawing::Point(506, 216);
|
this->txtFC->Name = L"txtFC";
|
this->txtFC->Name = L"txtFC";
|
this->txtFC->Size = System::Drawing::Size(39, 20);
|
this->txtFC->Size = System::Drawing::Size(39, 20);
|
this->txtFC->TabIndex = 31;
|
this->txtFC->TabIndex = 31;
|
this->txtFC->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtFC->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label15
|
// label15
|
//
|
//
|
this->label15->AutoSize = true;
|
this->label15->AutoSize = true;
|
this->label15->Location = System::Drawing::Point(475, 179);
|
this->label15->Location = System::Drawing::Point(471, 219);
|
this->label15->Name = L"label15";
|
this->label15->Name = L"label15";
|
this->label15->Size = System::Drawing::Size(20, 13);
|
this->label15->Size = System::Drawing::Size(20, 13);
|
this->label15->TabIndex = 30;
|
this->label15->TabIndex = 30;
|
this->label15->Text = L"FC";
|
this->label15->Text = L"FC";
|
//
|
//
|
// timer1
|
// timer1
|
//
|
//
|
this->timer1->Enabled = true;
|
this->timer1->Enabled = true;
|
this->timer1->Tick += gcnew System::EventHandler(this, &frmUart::timer1_Tick);
|
this->timer1->Tick += gcnew System::EventHandler(this, &frmUart::timer1_Tick);
|
//
|
//
|
// checkBox1
|
// checkBox1
|
//
|
//
|
this->checkBox1->AutoSize = true;
|
this->checkBox1->AutoSize = true;
|
this->checkBox1->Checked = true;
|
this->checkBox1->Checked = true;
|
this->checkBox1->CheckState = System::Windows::Forms::CheckState::Checked;
|
this->checkBox1->CheckState = System::Windows::Forms::CheckState::Checked;
|
this->checkBox1->Location = System::Drawing::Point(31, 315);
|
this->checkBox1->Location = System::Drawing::Point(27, 355);
|
this->checkBox1->Name = L"checkBox1";
|
this->checkBox1->Name = L"checkBox1";
|
this->checkBox1->Size = System::Drawing::Size(47, 17);
|
this->checkBox1->Size = System::Drawing::Size(47, 17);
|
this->checkBox1->TabIndex = 32;
|
this->checkBox1->TabIndex = 32;
|
this->checkBox1->Text = L"CTS";
|
this->checkBox1->Text = L"CTS";
|
this->checkBox1->UseVisualStyleBackColor = true;
|
this->checkBox1->UseVisualStyleBackColor = true;
|
//
|
//
|
// checkBox2
|
// checkBox2
|
//
|
//
|
this->checkBox2->AutoSize = true;
|
this->checkBox2->AutoSize = true;
|
this->checkBox2->Checked = true;
|
this->checkBox2->Checked = true;
|
this->checkBox2->CheckState = System::Windows::Forms::CheckState::Checked;
|
this->checkBox2->CheckState = System::Windows::Forms::CheckState::Checked;
|
this->checkBox2->Location = System::Drawing::Point(31, 338);
|
this->checkBox2->Location = System::Drawing::Point(27, 378);
|
this->checkBox2->Name = L"checkBox2";
|
this->checkBox2->Name = L"checkBox2";
|
this->checkBox2->Size = System::Drawing::Size(49, 17);
|
this->checkBox2->Size = System::Drawing::Size(49, 17);
|
this->checkBox2->TabIndex = 33;
|
this->checkBox2->TabIndex = 33;
|
this->checkBox2->Text = L"DSR";
|
this->checkBox2->Text = L"DSR";
|
this->checkBox2->UseVisualStyleBackColor = true;
|
this->checkBox2->UseVisualStyleBackColor = true;
|
//
|
//
|
// checkBox3
|
// checkBox3
|
//
|
//
|
this->checkBox3->AutoSize = true;
|
this->checkBox3->AutoSize = true;
|
this->checkBox3->Checked = true;
|
this->checkBox3->Checked = true;
|
this->checkBox3->CheckState = System::Windows::Forms::CheckState::Checked;
|
this->checkBox3->CheckState = System::Windows::Forms::CheckState::Checked;
|
this->checkBox3->Location = System::Drawing::Point(31, 361);
|
this->checkBox3->Location = System::Drawing::Point(27, 401);
|
this->checkBox3->Name = L"checkBox3";
|
this->checkBox3->Name = L"checkBox3";
|
this->checkBox3->Size = System::Drawing::Size(49, 17);
|
this->checkBox3->Size = System::Drawing::Size(49, 17);
|
this->checkBox3->TabIndex = 34;
|
this->checkBox3->TabIndex = 34;
|
this->checkBox3->Text = L"DCD";
|
this->checkBox3->Text = L"DCD";
|
this->checkBox3->UseVisualStyleBackColor = true;
|
this->checkBox3->UseVisualStyleBackColor = true;
|
//
|
//
|
// txtRB
|
// txtRB
|
//
|
//
|
this->txtRB->Location = System::Drawing::Point(413, 95);
|
this->txtRB->Location = System::Drawing::Point(409, 135);
|
this->txtRB->Name = L"txtRB";
|
this->txtRB->Name = L"txtRB";
|
this->txtRB->ReadOnly = true;
|
this->txtRB->ReadOnly = true;
|
this->txtRB->Size = System::Drawing::Size(39, 20);
|
this->txtRB->Size = System::Drawing::Size(39, 20);
|
this->txtRB->TabIndex = 36;
|
this->txtRB->TabIndex = 36;
|
this->txtRB->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
this->txtRB->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
//
|
//
|
// label16
|
// label16
|
//
|
//
|
this->label16->AutoSize = true;
|
this->label16->AutoSize = true;
|
this->label16->Location = System::Drawing::Point(378, 98);
|
this->label16->Location = System::Drawing::Point(374, 138);
|
this->label16->Name = L"label16";
|
this->label16->Name = L"label16";
|
this->label16->Size = System::Drawing::Size(22, 13);
|
this->label16->Size = System::Drawing::Size(22, 13);
|
this->label16->TabIndex = 35;
|
this->label16->TabIndex = 35;
|
this->label16->Text = L"RB";
|
this->label16->Text = L"RB";
|
//
|
//
|
// frmUart
|
// frmUart
|
//
|
//
|
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
|
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
|
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
|
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
|
this->ClientSize = System::Drawing::Size(571, 388);
|
this->ClientSize = System::Drawing::Size(571, 429);
|
this->Controls->Add(this->txtRB);
|
this->Controls->Add(this->txtRB);
|
this->Controls->Add(this->label16);
|
this->Controls->Add(this->label16);
|
this->Controls->Add(this->checkBox3);
|
this->Controls->Add(this->checkBox3);
|
this->Controls->Add(this->checkBox2);
|
this->Controls->Add(this->checkBox2);
|
this->Controls->Add(this->checkBox1);
|
this->Controls->Add(this->checkBox1);
|
this->Controls->Add(this->txtFC);
|
this->Controls->Add(this->txtFC);
|
this->Controls->Add(this->label15);
|
this->Controls->Add(this->label15);
|
this->Controls->Add(this->txtCTRL);
|
this->Controls->Add(this->txtCTRL);
|
this->Controls->Add(this->label14);
|
this->Controls->Add(this->label14);
|
this->Controls->Add(this->txtMC);
|
this->Controls->Add(this->txtMC);
|
this->Controls->Add(this->label13);
|
this->Controls->Add(this->label13);
|
this->Controls->Add(this->txtFF);
|
this->Controls->Add(this->txtFF);
|
this->Controls->Add(this->label12);
|
this->Controls->Add(this->label12);
|
this->Controls->Add(this->txtIER);
|
this->Controls->Add(this->txtIER);
|
this->Controls->Add(this->label11);
|
this->Controls->Add(this->label11);
|
this->Controls->Add(this->txtIS);
|
this->Controls->Add(this->txtIS);
|
this->Controls->Add(this->label10);
|
this->Controls->Add(this->label10);
|
this->Controls->Add(this->txtMS);
|
this->Controls->Add(this->txtMS);
|
this->Controls->Add(this->label9);
|
this->Controls->Add(this->label9);
|
this->Controls->Add(this->txtLS);
|
this->Controls->Add(this->txtLS);
|
this->Controls->Add(this->label8);
|
this->Controls->Add(this->label8);
|
this->Controls->Add(this->txtTB);
|
this->Controls->Add(this->txtTB);
|
this->Controls->Add(this->label7);
|
this->Controls->Add(this->label7);
|
this->Controls->Add(this->txtCM3);
|
this->Controls->Add(this->txtCM3);
|
this->Controls->Add(this->label6);
|
this->Controls->Add(this->label6);
|
this->Controls->Add(this->txtCM2);
|
this->Controls->Add(this->txtCM2);
|
this->Controls->Add(this->label5);
|
this->Controls->Add(this->label5);
|
this->Controls->Add(this->txtCM1);
|
this->Controls->Add(this->txtCM1);
|
this->Controls->Add(this->label4);
|
this->Controls->Add(this->label4);
|
this->Controls->Add(this->txtCM0);
|
this->Controls->Add(this->txtCM0);
|
this->Controls->Add(this->label3);
|
this->Controls->Add(this->label3);
|
this->Controls->Add(this->button2);
|
this->Controls->Add(this->button2);
|
this->Controls->Add(this->button1);
|
|
this->Controls->Add(this->txtFromUart);
|
this->Controls->Add(this->txtFromUart);
|
this->Controls->Add(this->label2);
|
this->Controls->Add(this->label2);
|
this->Controls->Add(this->label1);
|
this->Controls->Add(this->label1);
|
this->Controls->Add(this->txtToUart);
|
this->Controls->Add(this->txtToUart);
|
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
|
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
|
this->Name = L"frmUart";
|
this->Name = L"frmUart";
|
this->Text = L"rtfSimpleUart Emulator";
|
this->Text = L"rtfSimpleUart Emulator";
|
|
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmUart::frmUart_FormClosing);
|
this->ResumeLayout(false);
|
this->ResumeLayout(false);
|
this->PerformLayout();
|
this->PerformLayout();
|
|
|
}
|
}
|
#pragma endregion
|
#pragma endregion
|
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
|
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
|
do_send = true;
|
do_send = true;
|
}
|
}
|
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
|
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
|
int dat;
|
int dat;
|
char buf[5];
|
char buf[20];
|
|
|
if (do_send && txtToUart->Text->Length > 0) {
|
if (do_send && txtToUart->Text->Length > 0) {
|
char* str = (char*)(void*)Marshal::StringToHGlobalAnsi(txtToUart->Text->Substring(0,1));
|
char* str = (char*)(void*)Marshal::StringToHGlobalAnsi(txtToUart->Text->Substring(0,1));
|
txtToUart->Text = txtToUart->Text->Substring(1);
|
txtToUart->Text = txtToUart->Text->Substring(1);
|
mut->WaitOne();
|
mut->WaitOne();
|
system1.uart1.RxPort(str[0]);
|
system1.uart1.RxPort(str[0]);
|
mut->ReleaseMutex();
|
mut->ReleaseMutex();
|
}
|
}
|
if (txtToUart->Text->Length <= 0)
|
if (txtToUart->Text->Length <= 0)
|
do_send = false;
|
do_send = false;
|
mut->WaitOne();
|
mut->WaitOne();
|
dat = system1.uart1.TxPort() & 0xFF;
|
dat = system1.uart1.TxPort() & 0xFF;
|
mut->ReleaseMutex();
|
mut->ReleaseMutex();
|
buf[0] = dat;
|
buf[0] = dat;
|
buf[1] = '\0';
|
buf[1] = '\0';
|
if (dat != 0xFF)
|
if (dat != 0xFF)
|
txtFromUart->Text = txtFromUart->Text + gcnew String(buf);
|
txtFromUart->Text = txtFromUart->Text + gcnew String(buf);
|
|
|
mut->WaitOne();
|
mut->WaitOne();
|
sprintf(buf, "%02X", system1.uart1.cm1);
|
sprintf(buf, "%02X", system1.uart1.cm1);
|
txtCM1->Text = gcnew String(buf);
|
txtCM1->Text = gcnew String(buf);
|
sprintf(buf, "%02X", system1.uart1.cm2);
|
sprintf(buf, "%02X", system1.uart1.cm2);
|
txtCM2->Text = gcnew String(buf);
|
txtCM2->Text = gcnew String(buf);
|
sprintf(buf, "%02X", system1.uart1.cm3);
|
sprintf(buf, "%02X", system1.uart1.cm3);
|
txtCM3->Text = gcnew String(buf);
|
txtCM3->Text = gcnew String(buf);
|
sprintf(buf, "%02X", system1.uart1.ls);
|
sprintf(buf, "%02X", system1.uart1.ls);
|
txtLS->Text = gcnew String(buf);
|
txtLS->Text = gcnew String(buf);
|
sprintf(buf, "%02X", system1.uart1.rb);
|
sprintf(buf, "%02X", system1.uart1.rb);
|
txtRB->Text = gcnew String(buf);
|
txtRB->Text = gcnew String(buf);
|
sprintf(buf, "%02X", system1.uart1.tb);
|
sprintf(buf, "%02X", system1.uart1.tb);
|
txtTB->Text = gcnew String(buf);
|
txtTB->Text = gcnew String(buf);
|
sprintf(buf, "%02X", system1.uart1.ier);
|
sprintf(buf, "%02X", system1.uart1.ier);
|
txtIER->Text = gcnew String(buf);
|
txtIER->Text = gcnew String(buf);
|
sprintf(buf, "%02X", system1.uart1.is);
|
sprintf(buf, "%02X", system1.uart1.is);
|
mut->ReleaseMutex();
|
mut->ReleaseMutex();
|
txtIS->Text = gcnew String(buf);
|
txtIS->Text = gcnew String(buf);
|
}
|
}
|
|
private: System::Void frmUart_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
|
|
if (e->CloseReason==CloseReason::UserClosing)
|
|
e->Cancel = true;
|
|
}
|
};
|
};
|
}
|
}
|
|
|