/* This software is subject to the license described in the License.txt file included with this software distribution. You may not use this file except in compliance with this license. Copyright (c) Dynastream Innovations Inc. 2012 All rights reserved. */ /* For every available channel of a connected device, an instance of this class is created. The main program will then call for the created tab page and add it to the main page tab control. All the ANT communication in a channel is driven by this class, along with the opening, closing, and setting parameters of the ANT channel. The channel holds an event timer which is used to open the channel after all parameters are set and then on every tick calls the simulator class for an update to the transmit buffer and the timer interval. This class also receives and handles the channel event messages. */ #pragma once using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; #include "StdAfx.h" #include "types.h" #include "antmessage.h" #include "antdefines.h" #include "ISimBase.h" #include "SimTypes.h" typedef enum { STATE_CHANNEL_CLOSED, STATE_CHANNEL_OPENING, STATE_CHANNEL_OPEN } AntChannelState; public value struct CapabilitiesStruct { UCHAR ucStandardOptions; UCHAR ucAdvancedOptions; UCHAR ucAdvancedOptions2; }; typedef enum { PLATFORM_AP1_ANT11TR, PLATFORM_AP2_USB2_AT3, PLATFORM_C7, PLATFORM_UNKNOWN, } ANTPlatform; // List of TxPower Level Settings #define TXPOWER_SETTINGS1 {L"-20 dBm", L"-10 dBm", L"-5 dBm", L"0 dBm", L"N/A"} #define TXPOWER_SETTINGS2 {L"-18 dBm", L"-12 dBm", L"-6 dBm", L"0 dBm", L"N/A"} #define TXPOWER_SETTINGS3 {L"-20 dBm", L"-10 dBm", L"-4 dBm", L"0 dBm", L"+4 dBm"} #define TXPOWER_SETTINGS_UNKNOWN {L"0", L"1", L"2", L"3", L"4"} public ref class ANTChannel : public System::Windows::Forms::Form{ public: ANTChannel(UCHAR ucInstanceNum_, UCHAR ucSimType_, ANTPlatform eHWType_, CapabilitiesStruct sCapabilities_); ~ANTChannel(); ref struct ANTEventTable abstract sealed { static initonly array^ aucCode = { RESPONSE_NO_ERROR, EVENT_RX_SEARCH_TIMEOUT, EVENT_RX_FAIL, EVENT_TX, EVENT_TRANSFER_RX_FAILED, EVENT_TRANSFER_TX_COMPLETED, EVENT_TRANSFER_TX_FAILED, EVENT_CHANNEL_CLOSED, EVENT_RX_FAIL_GO_TO_SEARCH, EVENT_CHANNEL_COLLISION, EVENT_TRANSFER_TX_START, CHANNEL_IN_WRONG_STATE, CHANNEL_NOT_OPENED, CHANNEL_ID_NOT_SET, CLOSE_ALL_CHANNELS, TRANSFER_IN_PROGRESS, TRANSFER_SEQUENCE_NUMBER_ERROR, TRANSFER_IN_ERROR, INVALID_MESSAGE, INVALID_NETWORK_NUMBER, INVALID_LIST_ID, INVALID_SCAN_TX_CHANNEL, NVM_FULL_ERROR, NVM_WRITE_ERROR }; static initonly array^ aucDescr = { "RESPONSE_NO_ERROR", "EVENT_RX_SEARCH_TIMEOUT", "EVENT_RX_FAIL", "EVENT_TX", "EVENT_TRANSFER_RX_FAILED", "EVENT_TRANSFER_TX_COMPLETED", "EVENT_TRANSFER_TX_FAILED", "EVENT_CHANNEL_CLOSED", "EVENT_RX_FAIL_GO_TO_SEARCH", "EVENT_CHANNEL_COLLISION", "EVENT_TRANSFER_TX_START", "CHANNEL_IN_WRONG_STATE", "CHANNEL_NOT_OPENED", "CHANNEL_ID_NOT_SET", "CLOSE_ALL_CHANNELS", "TRANSFER_IN_PROGRESS", "TRANSFER_SEQUENCE_NUMBER_ERROR", "TRANSFER_IN_ERROR", "INVALID_MESSAGE", "INVALID_NETWORK_NUMBER", "INVALID_LIST_ID", "INVALID_SCAN_TX_CHANNEL", "NVM_FULL_ERROR", "NVM_WRITE_ERROR" }; }; public: UCHAR ucMyChannelNum; public: void ANTChannelEvent(UCHAR ucEvent_, UCHAR* pcBuffer_); void ANTProtocolEvent(UCHAR ucMessageCode_, UCHAR* pcBuffer_); System::Windows::Forms::TabPage^ getTab(){return this->tabPage_ChannelTab;} private: BOOL OpenChannel(UCHAR ucChannelType_); void ChannelOpenFailed(); void sendSimMsg(); void updateMesgPeriod(USHORT usMesgPeriod_); void sendAckMsg(UCHAR* pucTxBuffer_); void sendBroadcastMsg(UCHAR* pucTxBuffer_); BOOL ValidateChannelID(); void SetPairingBit(); #pragma region Windows Form Designer Control Events System::Void UpdateRawTxDisplay(System::String^ strLabel_, UCHAR* pucBuffer_); System::Void timer_SimEvent_Tick(System::Object^ sender, System::Timers::ElapsedEventArgs^ e); System::Void comboBox_SimSelect_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e); System::Void checkBox_TxEnable_CheckedChanged(System::Object^ sender, System::EventArgs^ e); System::Void checkBox_PairingOn_CheckedChanged(System::Object^ sender, System::EventArgs^ e); System::Void button_getChannelID_Click(System::Object^ sender, System::EventArgs^ e); System::Void checkBox_DisplayAsHex_CheckedChanged(System::Object^ sender, System::EventArgs^ e); System::Void button_Clear_Click(System::Object^ sender, System::EventArgs^ e); System::Void comboBox_TxPowerSelect_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e); System::Void tabPage_ChannelTab_Enter(System::Object^ sender, System::EventArgs^ e); #pragma endregion private: ISimBase^ curSimulator; // Current (active) simulator handle System::Timers::Timer^ timer_SimEvent; // Timer, for event-driven simulations UCHAR ucSimType; // Simulation type USHORT usMyDeviceNum; // Device number UCHAR ucMyDeviceType; // Device type UCHAR ucMyTxType; // Transmission type USHORT usMyMsgPeriod; // Message period DOUBLE dCurEventTime; // Current time (ms), for event-driven simulations BOOL bPairingBit; // Use pairing bit BOOL bDisplayHex; // Display in hex values (otherwise, use decimal values) AntChannelState eMyChannelState; // ANT Channel State BOOL bMyCheckInternalRaise; // Indicates whther checkbox was set by user or internally BOOL bAlreadyUnAssigned; // For dealing with differences in how AP2 search timeouts CapabilitiesStruct sMyCapabilities; // Copy of the Capabilities bytes BOOL bTXPowerUIEnabled; // Indicates if control ready to respond to user events static INT iTheTXPowerLevel = DEFAULT_RADIO_TX_POWER; #pragma region Windows Form Designer Control Declarations private: System::Windows::Forms::Panel^ panelPanelTestControl; private: System::Windows::Forms::TabControl^ tabControl1; private: System::Windows::Forms::TabPage^ tabPage_ChannelTab; private: System::Windows::Forms::RichTextBox^ richTextBox_RawTxDisplay; private: System::Windows::Forms::CheckBox^ checkBox_TxEnable; private: System::Windows::Forms::ComboBox^ comboBox_SimSelect; private: System::Windows::Forms::Panel^ panel_channelSettings; private: System::Windows::Forms::TextBox^ textBox_DeviceID; private: System::Windows::Forms::Label^ label_DeviceId; private: System::Windows::Forms::Label^ label_DeviceType; private: System::Windows::Forms::TextBox^ textBox_DeviceType; private: System::Windows::Forms::Label^ label_TransmitPeriod; private: System::Windows::Forms::TextBox^ textBox_TransmitPeriod; private: System::Windows::Forms::Label^ label_TransmissionType; private: System::Windows::Forms::TextBox^ textBox_TransmissionType; private: System::Windows::Forms::CheckBox^ checkBox_DisplayAsHex; private: System::Windows::Forms::Label^ label_TxTime; private: System::Windows::Forms::Label^ label_RawBox; private: System::Windows::Forms::Label^ label_TxTimeDisplay; private: System::Windows::Forms::Label^ label_ChannelConfig; private: System::Windows::Forms::Panel^ panel_Sim_PLACEHOLDER; private: System::Windows::Forms::Panel^ panel_SimDisplay_PLACEHOLDER; private: System::Windows::Forms::Button^ button_getChannelID; private: System::Windows::Forms::CheckBox^ checkBox_PairingOn; private: System::ComponentModel::IContainer^ components; private: System::Windows::Forms::Button^ button_Clear; private: System::Windows::Forms::ComboBox^ comboBox_TxPowerSelect; private: System::Windows::Forms::Label^ label_TxPower; private: /// /// Required designer variable. /// #pragma endregion #pragma region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// void InitializeComponent(void) { this->tabControl1 = (gcnew System::Windows::Forms::TabControl()); this->tabPage_ChannelTab = (gcnew System::Windows::Forms::TabPage()); this->button_Clear = (gcnew System::Windows::Forms::Button()); this->label_RawBox = (gcnew System::Windows::Forms::Label()); this->label_TxTime = (gcnew System::Windows::Forms::Label()); this->panel_SimDisplay_PLACEHOLDER = (gcnew System::Windows::Forms::Panel()); this->panel_Sim_PLACEHOLDER = (gcnew System::Windows::Forms::Panel()); this->label_TxTimeDisplay = (gcnew System::Windows::Forms::Label()); this->checkBox_DisplayAsHex = (gcnew System::Windows::Forms::CheckBox()); this->richTextBox_RawTxDisplay = (gcnew System::Windows::Forms::RichTextBox()); this->panel_channelSettings = (gcnew System::Windows::Forms::Panel()); this->label_TxPower = (gcnew System::Windows::Forms::Label()); this->comboBox_TxPowerSelect = (gcnew System::Windows::Forms::ComboBox()); this->button_getChannelID = (gcnew System::Windows::Forms::Button()); this->checkBox_PairingOn = (gcnew System::Windows::Forms::CheckBox()); this->label_ChannelConfig = (gcnew System::Windows::Forms::Label()); this->label_TransmissionType = (gcnew System::Windows::Forms::Label()); this->textBox_TransmissionType = (gcnew System::Windows::Forms::TextBox()); this->label_TransmitPeriod = (gcnew System::Windows::Forms::Label()); this->textBox_TransmitPeriod = (gcnew System::Windows::Forms::TextBox()); this->label_DeviceType = (gcnew System::Windows::Forms::Label()); this->textBox_DeviceType = (gcnew System::Windows::Forms::TextBox()); this->label_DeviceId = (gcnew System::Windows::Forms::Label()); this->textBox_DeviceID = (gcnew System::Windows::Forms::TextBox()); this->checkBox_TxEnable = (gcnew System::Windows::Forms::CheckBox()); this->comboBox_SimSelect = (gcnew System::Windows::Forms::ComboBox()); this->tabControl1->SuspendLayout(); this->tabPage_ChannelTab->SuspendLayout(); this->panel_channelSettings->SuspendLayout(); this->SuspendLayout(); // // tabControl1 // this->tabControl1->Controls->Add(this->tabPage_ChannelTab); this->tabControl1->Location = System::Drawing::Point(48, 39); this->tabControl1->Name = L"tabControl1"; this->tabControl1->SelectedIndex = 0; this->tabControl1->Size = System::Drawing::Size(740, 325); this->tabControl1->TabIndex = 0; // // tabPage_ChannelTab // this->tabPage_ChannelTab->Controls->Add(this->button_Clear); this->tabPage_ChannelTab->Controls->Add(this->label_RawBox); this->tabPage_ChannelTab->Controls->Add(this->label_TxTime); this->tabPage_ChannelTab->Controls->Add(this->panel_SimDisplay_PLACEHOLDER); this->tabPage_ChannelTab->Controls->Add(this->panel_Sim_PLACEHOLDER); this->tabPage_ChannelTab->Controls->Add(this->label_TxTimeDisplay); this->tabPage_ChannelTab->Controls->Add(this->checkBox_DisplayAsHex); this->tabPage_ChannelTab->Controls->Add(this->richTextBox_RawTxDisplay); this->tabPage_ChannelTab->Controls->Add(this->panel_channelSettings); this->tabPage_ChannelTab->Controls->Add(this->checkBox_TxEnable); this->tabPage_ChannelTab->Controls->Add(this->comboBox_SimSelect); this->tabPage_ChannelTab->Location = System::Drawing::Point(4, 22); this->tabPage_ChannelTab->Name = L"tabPage_ChannelTab"; this->tabPage_ChannelTab->Padding = System::Windows::Forms::Padding(3); this->tabPage_ChannelTab->Size = System::Drawing::Size(732, 299); this->tabPage_ChannelTab->TabIndex = 0; this->tabPage_ChannelTab->Text = L"Channel #"; this->tabPage_ChannelTab->UseVisualStyleBackColor = true; this->tabPage_ChannelTab->Enter += gcnew System::EventHandler(this, &ANTChannel::tabPage_ChannelTab_Enter); // // button_Clear // this->button_Clear->Location = System::Drawing::Point(238, 6); this->button_Clear->Name = L"button_Clear"; this->button_Clear->Size = System::Drawing::Size(56, 23); this->button_Clear->TabIndex = 12; this->button_Clear->Text = L"Clear"; this->button_Clear->UseVisualStyleBackColor = true; this->button_Clear->Click += gcnew System::EventHandler(this, &ANTChannel::button_Clear_Click); // // label_RawBox // this->label_RawBox->AutoSize = true; this->label_RawBox->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Underline, System::Drawing::GraphicsUnit::Point, static_cast(0))); this->label_RawBox->Location = System::Drawing::Point(13, 14); this->label_RawBox->Name = L"label_RawBox"; this->label_RawBox->Size = System::Drawing::Size(106, 13); this->label_RawBox->TabIndex = 11; this->label_RawBox->Text = L"ANT Channel Output"; // // label_TxTime // this->label_TxTime->AutoSize = true; this->label_TxTime->Location = System::Drawing::Point(13, 155); this->label_TxTime->Name = L"label_TxTime"; this->label_TxTime->Size = System::Drawing::Size(75, 13); this->label_TxTime->TabIndex = 10; this->label_TxTime->Text = L"Total Tx Time:"; // // panel_SimDisplay_PLACEHOLDER // this->panel_SimDisplay_PLACEHOLDER->Location = System::Drawing::Point(58, 188); this->panel_SimDisplay_PLACEHOLDER->Name = L"panel_SimDisplay_PLACEHOLDER"; this->panel_SimDisplay_PLACEHOLDER->Size = System::Drawing::Size(200, 90); this->panel_SimDisplay_PLACEHOLDER->TabIndex = 9; this->panel_SimDisplay_PLACEHOLDER->Visible = false; // // panel_Sim_PLACEHOLDER // this->panel_Sim_PLACEHOLDER->Location = System::Drawing::Point(322, 50); this->panel_Sim_PLACEHOLDER->Name = L"panel_Sim_PLACEHOLDER"; this->panel_Sim_PLACEHOLDER->Size = System::Drawing::Size(400, 140); this->panel_Sim_PLACEHOLDER->TabIndex = 8; this->panel_Sim_PLACEHOLDER->Visible = false; // // label_TxTimeDisplay // this->label_TxTimeDisplay->Location = System::Drawing::Point(113, 156); this->label_TxTimeDisplay->Name = L"label_TxTimeDisplay"; this->label_TxTimeDisplay->Size = System::Drawing::Size(103, 12); this->label_TxTimeDisplay->TabIndex = 7; this->label_TxTimeDisplay->Text = L"0"; // // checkBox_DisplayAsHex // this->checkBox_DisplayAsHex->AutoSize = true; this->checkBox_DisplayAsHex->Checked = true; this->checkBox_DisplayAsHex->CheckState = System::Windows::Forms::CheckState::Checked; this->checkBox_DisplayAsHex->Location = System::Drawing::Point(125, 12); this->checkBox_DisplayAsHex->Name = L"checkBox_DisplayAsHex"; this->checkBox_DisplayAsHex->Size = System::Drawing::Size(91, 17); this->checkBox_DisplayAsHex->TabIndex = 8; this->checkBox_DisplayAsHex->Text = L"Display in hex"; this->checkBox_DisplayAsHex->UseVisualStyleBackColor = true; this->checkBox_DisplayAsHex->CheckedChanged += gcnew System::EventHandler(this, &ANTChannel::checkBox_DisplayAsHex_CheckedChanged); // // richTextBox_RawTxDisplay // this->richTextBox_RawTxDisplay->BackColor = System::Drawing::SystemColors::Window; this->richTextBox_RawTxDisplay->Font = (gcnew System::Drawing::Font(L"Lucida Console", 8.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast(0))); this->richTextBox_RawTxDisplay->HideSelection = false; this->richTextBox_RawTxDisplay->Location = System::Drawing::Point(16, 30); this->richTextBox_RawTxDisplay->Name = L"richTextBox_RawTxDisplay"; this->richTextBox_RawTxDisplay->ReadOnly = true; this->richTextBox_RawTxDisplay->Size = System::Drawing::Size(278, 122); this->richTextBox_RawTxDisplay->TabIndex = 0; this->richTextBox_RawTxDisplay->TabStop = false; this->richTextBox_RawTxDisplay->Text = L"Raw Data..."; // // panel_channelSettings // this->panel_channelSettings->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D; this->panel_channelSettings->Controls->Add(this->label_TxPower); this->panel_channelSettings->Controls->Add(this->comboBox_TxPowerSelect); this->panel_channelSettings->Controls->Add(this->button_getChannelID); this->panel_channelSettings->Controls->Add(this->checkBox_PairingOn); this->panel_channelSettings->Controls->Add(this->label_ChannelConfig); this->panel_channelSettings->Controls->Add(this->label_TransmissionType); this->panel_channelSettings->Controls->Add(this->textBox_TransmissionType); this->panel_channelSettings->Controls->Add(this->label_TransmitPeriod); this->panel_channelSettings->Controls->Add(this->textBox_TransmitPeriod); this->panel_channelSettings->Controls->Add(this->label_DeviceType); this->panel_channelSettings->Controls->Add(this->textBox_DeviceType); this->panel_channelSettings->Controls->Add(this->label_DeviceId); this->panel_channelSettings->Controls->Add(this->textBox_DeviceID); this->panel_channelSettings->Location = System::Drawing::Point(322, 211); this->panel_channelSettings->Name = L"panel_channelSettings"; this->panel_channelSettings->Size = System::Drawing::Size(400, 67); this->panel_channelSettings->TabIndex = 6; // // label_TxPower // this->label_TxPower->Location = System::Drawing::Point(333, 24); this->label_TxPower->Name = L"label_TxPower"; this->label_TxPower->Size = System::Drawing::Size(52, 13); this->label_TxPower->TabIndex = 14; this->label_TxPower->Text = L"Tx Power"; // // comboBox_TxPowerSelect // this->comboBox_TxPowerSelect->ForeColor = System::Drawing::SystemColors::WindowText; this->comboBox_TxPowerSelect->FormattingEnabled = true; this->comboBox_TxPowerSelect->Location = System::Drawing::Point(327, 40); this->comboBox_TxPowerSelect->Margin = System::Windows::Forms::Padding(3, 0, 3, 3); this->comboBox_TxPowerSelect->Name = L"comboBox_TxPowerSelect"; this->comboBox_TxPowerSelect->Size = System::Drawing::Size(66, 21); this->comboBox_TxPowerSelect->TabIndex = 13; this->comboBox_TxPowerSelect->Text = L"Tx Power"; this->comboBox_TxPowerSelect->SelectedIndexChanged += gcnew System::EventHandler(this, &ANTChannel::comboBox_TxPowerSelect_SelectedIndexChanged); // // button_getChannelID // this->button_getChannelID->Enabled = false; this->button_getChannelID->Location = System::Drawing::Point(267, 3); this->button_getChannelID->Name = L"button_getChannelID"; this->button_getChannelID->Size = System::Drawing::Size(122, 19); this->button_getChannelID->TabIndex = 9; this->button_getChannelID->Text = L"Get Channel ID"; this->button_getChannelID->UseVisualStyleBackColor = true; this->button_getChannelID->Visible = false; this->button_getChannelID->Click += gcnew System::EventHandler(this, &ANTChannel::button_getChannelID_Click); // // checkBox_PairingOn // this->checkBox_PairingOn->AutoSize = true; this->checkBox_PairingOn->Location = System::Drawing::Point(173, 5); this->checkBox_PairingOn->Name = L"checkBox_PairingOn"; this->checkBox_PairingOn->Size = System::Drawing::Size(88, 17); this->checkBox_PairingOn->TabIndex = 7; this->checkBox_PairingOn->Text = L"Pairing Mode"; this->checkBox_PairingOn->UseVisualStyleBackColor = true; this->checkBox_PairingOn->CheckedChanged += gcnew System::EventHandler(this, &ANTChannel::checkBox_PairingOn_CheckedChanged); // // label_ChannelConfig // this->label_ChannelConfig->AutoSize = true; this->label_ChannelConfig->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Underline, System::Drawing::GraphicsUnit::Point, static_cast(0))); this->label_ChannelConfig->Location = System::Drawing::Point(5, 5); this->label_ChannelConfig->Name = L"label_ChannelConfig"; this->label_ChannelConfig->Size = System::Drawing::Size(139, 13); this->label_ChannelConfig->TabIndex = 8; this->label_ChannelConfig->Text = L"ANT Channel Configuration:"; // // label_TransmissionType // this->label_TransmissionType->AutoSize = true; this->label_TransmissionType->Location = System::Drawing::Point(60, 24); this->label_TransmissionType->Name = L"label_TransmissionType"; this->label_TransmissionType->Size = System::Drawing::Size(95, 13); this->label_TransmissionType->TabIndex = 5; this->label_TransmissionType->Text = L"Transmission Type"; // // textBox_TransmissionType // this->textBox_TransmissionType->Location = System::Drawing::Point(80, 40); this->textBox_TransmissionType->MaxLength = 10; this->textBox_TransmissionType->Name = L"textBox_TransmissionType"; this->textBox_TransmissionType->Size = System::Drawing::Size(49, 20); this->textBox_TransmissionType->TabIndex = 4; this->textBox_TransmissionType->Text = L"1"; // // label_TransmitPeriod // this->label_TransmitPeriod->AutoSize = true; this->label_TransmitPeriod->Location = System::Drawing::Point(233, 24); this->label_TransmitPeriod->Name = L"label_TransmitPeriod"; this->label_TransmitPeriod->Size = System::Drawing::Size(93, 13); this->label_TransmitPeriod->TabIndex = 7; this->label_TransmitPeriod->Text = L"Tx Period (counts)"; // // textBox_TransmitPeriod // this->textBox_TransmitPeriod->Location = System::Drawing::Point(251, 40); this->textBox_TransmitPeriod->MaxLength = 10; this->textBox_TransmitPeriod->Name = L"textBox_TransmitPeriod"; this->textBox_TransmitPeriod->Size = System::Drawing::Size(49, 20); this->textBox_TransmitPeriod->TabIndex = 6; this->textBox_TransmitPeriod->Text = L"8192"; // // label_DeviceType // this->label_DeviceType->AutoSize = true; this->label_DeviceType->Location = System::Drawing::Point(160, 24); this->label_DeviceType->Name = L"label_DeviceType"; this->label_DeviceType->Size = System::Drawing::Size(68, 13); this->label_DeviceType->TabIndex = 3; this->label_DeviceType->Text = L"Device Type"; // // textBox_DeviceType // this->textBox_DeviceType->Location = System::Drawing::Point(166, 40); this->textBox_DeviceType->MaxLength = 10; this->textBox_DeviceType->Name = L"textBox_DeviceType"; this->textBox_DeviceType->Size = System::Drawing::Size(49, 20); this->textBox_DeviceType->TabIndex = 5; this->textBox_DeviceType->Text = L"1"; // // label_DeviceId // this->label_DeviceId->AutoSize = true; this->label_DeviceId->Location = System::Drawing::Point(6, 24); this->label_DeviceId->Name = L"label_DeviceId"; this->label_DeviceId->Size = System::Drawing::Size(55, 13); this->label_DeviceId->TabIndex = 1; this->label_DeviceId->Text = L"Device ID"; // // textBox_DeviceID // this->textBox_DeviceID->Location = System::Drawing::Point(9, 40); this->textBox_DeviceID->MaxLength = 10; this->textBox_DeviceID->Name = L"textBox_DeviceID"; this->textBox_DeviceID->Size = System::Drawing::Size(49, 20); this->textBox_DeviceID->TabIndex = 3; this->textBox_DeviceID->Text = L"33"; // // checkBox_TxEnable // this->checkBox_TxEnable->AutoSize = true; this->checkBox_TxEnable->Location = System::Drawing::Point(545, 14); this->checkBox_TxEnable->Name = L"checkBox_TxEnable"; this->checkBox_TxEnable->Size = System::Drawing::Size(94, 17); this->checkBox_TxEnable->TabIndex = 2; this->checkBox_TxEnable->Text = L"Open Channel"; this->checkBox_TxEnable->UseVisualStyleBackColor = true; this->checkBox_TxEnable->CheckedChanged += gcnew System::EventHandler(this, &ANTChannel::checkBox_TxEnable_CheckedChanged); // // comboBox_SimSelect // this->comboBox_SimSelect->FormattingEnabled = true; this->comboBox_SimSelect->Location = System::Drawing::Point(322, 10); this->comboBox_SimSelect->Name = L"comboBox_SimSelect"; this->comboBox_SimSelect->Size = System::Drawing::Size(205, 21); this->comboBox_SimSelect->TabIndex = 1; this->comboBox_SimSelect->Text = L"Select Simulator..."; this->comboBox_SimSelect->SelectedIndexChanged += gcnew System::EventHandler(this, &ANTChannel::comboBox_SimSelect_SelectedIndexChanged); // // ANTChannel // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(830, 412); this->Controls->Add(this->tabControl1); this->Name = L"ANTChannel"; this->Text = L"ANTChannel"; this->tabControl1->ResumeLayout(false); this->tabPage_ChannelTab->ResumeLayout(false); this->tabPage_ChannelTab->PerformLayout(); this->panel_channelSettings->ResumeLayout(false); this->panel_channelSettings->PerformLayout(); this->ResumeLayout(false); } #pragma endregion };