From: <sat...@us...> - 2010-03-20 06:22:52
|
Revision: 245 http://w-meter.svn.sourceforge.net/w-meter/?rev=245&view=rev Author: sathakselva Date: 2010-03-20 06:22:46 +0000 (Sat, 20 Mar 2010) Log Message: ----------- Fix the issue with clear button in main window and dynamic memory allocation removed Modified Paths: -------------- frame_injection_g/trunk/src/injection_main_cpp.cpp frame_injection_g/trunk/src/mac_80211.h frame_injection_g/trunk/src/mgmt_asso_req_cpp.cpp frame_injection_g/trunk/src/mgmt_asso_res_cpp.cpp Modified: frame_injection_g/trunk/src/injection_main_cpp.cpp =================================================================== --- frame_injection_g/trunk/src/injection_main_cpp.cpp 2010-03-19 15:41:52 UTC (rev 244) +++ frame_injection_g/trunk/src/injection_main_cpp.cpp 2010-03-20 06:22:46 UTC (rev 245) @@ -101,8 +101,9 @@ combobox_channel->setCurrentItem(0); combobox_bandwidth->setCurrentItem(0); combobox_datarate->setCurrentItem(0); - lineedit_frame_interval->setText("10000"); - lineedit_no_frames->setText("10"); + lineedit_interface->setText(""); + lineedit_frame_interval->setText(""); + lineedit_no_frames->setText(""); } /*Event invoked after pressing NEXT push button */ Modified: frame_injection_g/trunk/src/mac_80211.h =================================================================== --- frame_injection_g/trunk/src/mac_80211.h 2010-03-19 15:41:52 UTC (rev 244) +++ frame_injection_g/trunk/src/mac_80211.h 2010-03-20 06:22:46 UTC (rev 245) @@ -22,6 +22,8 @@ #include <stdint.h> #define MAC_ADDRESS_LEN 6 +#define MAX_LISTEN_INTERVAL 2000 +#define MAX_AID 2008 /** @author root <root@localhost.localdomain> */ Modified: frame_injection_g/trunk/src/mgmt_asso_req_cpp.cpp =================================================================== --- frame_injection_g/trunk/src/mgmt_asso_req_cpp.cpp 2010-03-19 15:41:52 UTC (rev 244) +++ frame_injection_g/trunk/src/mgmt_asso_req_cpp.cpp 2010-03-20 06:22:46 UTC (rev 245) @@ -36,8 +36,8 @@ uint16_t global_assoreq_flag = 0; char default_assoc_req[] = "default_AssocReq"; -//uint8_t msg[300]; + mgmt_asso_req_cpp::mgmt_asso_req_cpp (QWidget* parent, const char* name, WFlags fl) : inj_mgmt_association_form (parent, name, fl) { @@ -58,7 +58,7 @@ while (fscanf (file1, "%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", &frame1[0], &frame2[0], &frame3[0], &frame4[0], &frame5[0], &frame6[0], &frame7[0], &frame8[0], &frame9[0], &frame10[0], &frame11[0], &frame12[0], &frame13[0], &frame14[0], &frame15[0], &frame16[0], &nav[0], &add1_1[0], &add1_2[0], &add1_3[0], &add1_4[0], &add1_5[0], &add1_6[0], &add2_1[0], &add2_2[0], &add2_3[0], &add2_4[0], &add2_5[0], &add2_6[0], &add3_1[0], &add3_2[0], &add3_3[0], &add3_4[0], &add3_5[0], &add3_6[0], &fragno[0], &seqno[0], &capinfo1[0], &capinfo2[0], &capinfo3[0], &capinfo4[0], &capinfo5[0], &capinfo6[0], &capinfo7[0], &capinfo8[0], &capinfo9[0], &capinfo10[0], &capinfo11[0], &capinfo12[0], &capinfo13[0], &capinfo14[0], &capinfo15[0], &capinfo16[0], &listenint[0], &ssid[0], &srate1[0], &srate2[0], &srate3[0], &srate4[0], &srate5[0], &srate6[0], &srate7[0], &srate8[0], &esrate1[0], &esrate2[0], &esrate3[0], &esrate4[0], &mand1[0], &mand2[0], &mand3[0], &mand4[0], &mand5[0], &mand6[0], &mand7[0], &mand8[0], &mand9[0], &mand10[0], &mand11[0], &mand12[0]) != EOF) { - /* Loading Frame Header details */ + /* Set Frame control field details */ lineedit_frame_1->setText (frame1); lineedit_frame_2->setText (frame2); @@ -77,10 +77,10 @@ lineedit_frame_15->setText (frame15); lineedit_frame_16->setText (frame16); - /* Loading NAV Values */ + /* Set NAV Value */ lineedit_NAV->setText (nav); - /* Loading Address Values */ + /* Set Receiver Address */ lineedit_address1_1->setText (add1_1); lineedit_address1_2->setText (add1_2); lineedit_address1_3->setText (add1_3); @@ -88,6 +88,7 @@ lineedit_address1_5->setText (add1_5); lineedit_address1_6->setText (add1_6); + /* Set Transmitter Address */ lineedit_address2_1->setText (add2_1); lineedit_address2_2->setText (add2_2); lineedit_address2_3->setText (add2_3); @@ -95,6 +96,7 @@ lineedit_address2_5->setText (add2_5); lineedit_address2_6->setText (add2_6); + /* Set BSSID Address */ lineedit_address3_1->setText (add3_1); lineedit_address3_2->setText (add3_2); lineedit_address3_3->setText (add3_3); @@ -102,10 +104,11 @@ lineedit_address3_5->setText (add3_5); lineedit_address3_6->setText (add3_6); - /* Loading fragment number, sequence number and Capability information elements */ + /* Set Sequence number */ lineedit_frag_no->setText (fragno); lineedit_seq_no->setText (seqno); + /* Set Capability Information */ lineedit_cap_info_1->setText (capinfo1); lineedit_cap_info_2->setText (capinfo2); lineedit_cap_info_3->setText (capinfo3); @@ -124,7 +127,7 @@ lineedit_cap_info_15->setText (capinfo15); lineedit_cap_info_16->setText (capinfo16); - /* Loading listen intervals and ssid */ + /* Set listen interval and SSID */ lineedit_listen_interval->setText (listenint); lineedit_ssid->setText (ssid); @@ -192,7 +195,7 @@ else checkbox_esrate_4->setChecked (0); - /* Loading mandatory rates */ + /* Set mandatory rates */ if (atoi (mand1)) checkbox_mand_1->setChecked (1); @@ -340,6 +343,7 @@ lineedit_address3_4->setValidator (&v); lineedit_address3_5->setValidator (&v); lineedit_address3_6->setValidator (&v); + // address fields values to local variable QString add1_1 = lineedit_address1_1->text(); QString add1_2 = lineedit_address1_2->text(); @@ -391,15 +395,14 @@ if (lineedit_address1_1->text() != "" && lineedit_address1_2->text() != "" && lineedit_address1_3->text() != "" && lineedit_address1_4->text() != "" && lineedit_address1_5->text() != "" && lineedit_address1_6->text() != "" && lineedit_address2_1->text() != "" && lineedit_address2_2->text() != "" && lineedit_address2_3->text() != "" && lineedit_address2_4->text() != "" && lineedit_address2_5->text() != "" && lineedit_address2_6->text() != "" && lineedit_address3_1->text() != "" && lineedit_address3_2->text() != "" && lineedit_address3_3->text() != "" && lineedit_address3_4->text() != "" && lineedit_address3_5->text() != "" && lineedit_address3_6->text() != "") { // inializing lineedit values to local variables - uint16_t duration_id = lineedit_NAV->text().toInt(); + uint16_t dur_int = lineedit_NAV->text().toInt(); uint16_t frag_no = lineedit_frag_no->text().toInt(); uint16_t seq_no = lineedit_seq_no->text().toInt(); uint16_t listen_intrvl_int = lineedit_listen_interval->text().toInt(); - /* validating lineedit values */ - /* validating NAV */ + /* validating other fields */ - if (duration_id < 65535 && lineedit_NAV->text() != "") + if (dur_int < 65535 && lineedit_NAV->text() != "") { if (frag_no < 16 && lineedit_frag_no->text() != "") { @@ -424,10 +427,9 @@ lineedit_cap_info_16->text().toInt() <= 1 && lineedit_cap_info_16->text() != "") { /* validating Listen Interval field */ - if (lineedit_listen_interval->text() != "" && listen_intrvl_int > 0 && listen_intrvl_int < 2001) + if (lineedit_listen_interval->text() != "" && listen_intrvl_int > 0 && listen_intrvl_int < MAX_LISTEN_INTERVAL) { - uint8_t frame_ctrl[2], duration_char[2], listen_intrvl_char[2]; - uint8_t addr1[6], addr2[6], addr3[6]; + uint8_t frame_ctrl[2], duration_char[2], listen_intrvl_char[2], addr1[6], addr2[6], addr3[6]; /* Form Frame control */ frame_ctrl[0] = mac.bits_to_byte (lineedit_frame_1->text(), lineedit_frame_2->text(), lineedit_frame_3->text(), lineedit_frame_4->text(), lineedit_frame_5->text(), lineedit_frame_6->text(), lineedit_frame_7->text(), lineedit_frame_8->text()); @@ -438,7 +440,7 @@ uint16_t i; for (i = 0;i < 2;i++) - duration_char[i] = * ( ( (char*) & duration_id) + i); + duration_char[i] = * ( ( (char*) & dur_int) + i); /* adress fields initializing to local variable */ addr1[0] = (unsigned char) lineedit_address1_1->text().toInt (&ok , 16); @@ -478,93 +480,91 @@ /* Listen Interval operation */ for (i = 0;i < 2;i++) - listen_intrvl_char[i] = * ( ( (char*) & listen_intrvl_int) + i); + listen_intrvl_char[i] = * ( ( (unsigned char*) & listen_intrvl_int) + i); - /* SSID operation */ uint8_t ssid_len = lineedit_ssid->text().length(); const char *str_ascii = lineedit_ssid->text(); - uint8_t element_id = 0X00; + uint8_t element_id = 0X00, srate_len = 0; + /* @srate : Maximum 8 data rates can be stored in suported rate. Remaining rates stored in extended supported rate. */ + uint8_t index = 0, srate[8], srate_id = 0X01, hexrate; - /* suported rate , Extended supported rate operation */ - uint8_t index = 0, tmp_val_char[10], srate_eleid = 0X01, hexrate; - if (checkbox_srate_1->isChecked() == 1) { hexrate = mac.map_rate (1, checkbox_mand_1->isChecked()); - tmp_val_char[index++] = * ( ( (char*) & hexrate) + 0); + srate[index++] = * ( ( (unsigned char*) & hexrate) + 0); } if (checkbox_srate_2->isChecked() == 1) { hexrate = mac.map_rate (2, checkbox_mand_2->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (unsigned char*) & hexrate) ; } if (checkbox_srate_3->isChecked() == 1) { hexrate = mac.map_rate (5.5, checkbox_mand_3->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (unsigned char*) & hexrate) ; } if (checkbox_srate_4->isChecked() == 1) { hexrate = mac.map_rate (11, checkbox_mand_4->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (unsigned char*) & hexrate) ; } if (checkbox_srate_5->isChecked() == 1) { hexrate = mac.map_rate (6, checkbox_mand_5->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (unsigned char*) & hexrate) ; } if (checkbox_srate_6->isChecked() == 1) { hexrate = mac.map_rate (9, checkbox_mand_6->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (unsigned char*) & hexrate) ; } if (checkbox_srate_7->isChecked() == 1) { hexrate = mac.map_rate (12, checkbox_mand_7->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (unsigned char*) & hexrate) ; } if (checkbox_srate_8->isChecked() == 1) { hexrate = mac.map_rate (18, checkbox_mand_8->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (unsigned char*) & hexrate) ; } + srate_len = index; + /*@erate: IEEE 802.11-2007 defines 12 data rates. + 8 as supported rate and 4 as extended suported rate */ + uint8_t index1 = 0, erate[4], erate_id = 0X32, erate_len =0; - uint8_t len_srate_arr = index; - uint8_t index1 = 0, tmp_val_esrchar[4], esrate_eleid = 0X32; - if (checkbox_esrate_1->isChecked() == 1) { hexrate = mac.map_rate (24, checkbox_mand_9->isChecked()); - tmp_val_esrchar[index1++] = * ( (char*) & hexrate); + erate[index1++] = * ( (unsigned char*) & hexrate); } if (checkbox_esrate_2->isChecked() == 1) { hexrate = mac.map_rate (36, checkbox_mand_10->isChecked()); - tmp_val_esrchar[index1++] = * ( (char*) & hexrate) ; + erate[index1++] = * ( (unsigned char*) & hexrate) ; } if (checkbox_esrate_3->isChecked() == 1) { hexrate = mac.map_rate (48, checkbox_mand_11->isChecked()); - tmp_val_esrchar[index1++] = * ( (char*) & hexrate); + erate[index1++] = * ( (unsigned char*) & hexrate); } if (checkbox_esrate_4->isChecked() == 1) { hexrate = mac.map_rate (54, checkbox_mand_12->isChecked()); - tmp_val_esrchar[index1++] = * ( (char*) & hexrate); + erate[index1++] = * ( (unsigned char*) & hexrate); } + erate_len = index1; - uint8_t len_esrate_arr = index1; - // copy frame control field memcpy (frame, &frame_ctrl, sizeof(frame_ctrl)); frame += sizeof(frame_ctrl); @@ -593,7 +593,6 @@ // append SSID *frame++ = element_id; *frame++ = ssid_len; - if (ssid_len != 0) { memcpy (frame, str_ascii, ssid_len); @@ -601,21 +600,21 @@ } // Append supported rates - if (len_srate_arr > 0) + if (srate_len > 0) { - *frame++ = srate_eleid; - *frame++ = len_srate_arr; - memcpy (frame, &tmp_val_char, len_srate_arr); - frame += len_srate_arr; + *frame++ = srate_id; + *frame++ = srate_len; + memcpy (frame, &srate, srate_len); + frame += srate_len; } // append extended support rates - if (len_esrate_arr > 0) + if (erate_len > 0) { - *frame++ = esrate_eleid; - *frame++ = len_esrate_arr; - memcpy (frame, &tmp_val_esrchar, len_esrate_arr); - frame += len_esrate_arr; + *frame++ = erate_id; + *frame++ = erate_len; + memcpy (frame, &erate, erate_len); + frame += erate_len; } int frame_len = frame - &msg[0]; @@ -829,7 +828,6 @@ } QString str_frm1 = lineedit_frame_1->text(); - QString str_frm2 = lineedit_frame_2->text(); QString str_frm3 = lineedit_frame_3->text(); QString str_frm4 = lineedit_frame_4->text(); Modified: frame_injection_g/trunk/src/mgmt_asso_res_cpp.cpp =================================================================== --- frame_injection_g/trunk/src/mgmt_asso_res_cpp.cpp 2010-03-19 15:41:52 UTC (rev 244) +++ frame_injection_g/trunk/src/mgmt_asso_res_cpp.cpp 2010-03-20 06:22:46 UTC (rev 245) @@ -58,7 +58,7 @@ while (fscanf (file1, "%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %d %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", &frame1[0], &frame2[0], &frame3[0], &frame4[0], &frame5[0], &frame6[0], &frame7[0], &frame8[0], &frame9[0], &frame10[0], &frame11[0], &frame12[0], &frame13[0], &frame14[0], &frame15[0], &frame16[0], &nav[0], &add1_1[0], &add1_2[0], &add1_3[0], &add1_4[0], &add1_5[0], &add1_6[0], &add2_1[0], &add2_2[0], &add2_3[0], &add2_4[0], &add2_5[0], &add2_6[0], &add3_1[0], &add3_2[0], &add3_3[0], &add3_4[0], &add3_5[0], &add3_6[0], &fragno[0], &seqno[0], &capinfo1[0], &capinfo2[0], &capinfo3[0], &capinfo4[0], &capinfo5[0], &capinfo6[0], &capinfo7[0], &capinfo8[0], &capinfo9[0], &capinfo10[0], &capinfo11[0], &capinfo12[0], &capinfo13[0], &capinfo14[0], &capinfo15[0], &capinfo16[0], &statuscode, &associd[0], &stat_code[0], &srate1[0], &srate2[0], &srate3[0], &srate4[0], &srate5[0], &srate6[0], &srate7[0], &srate8[0], &esrate1[0], &esrate2[0], &esrate3[0], &esrate4[0], &mand1[0], &mand2[0], &mand3[0], &mand4[0], &mand5[0], &mand6[0], &mand7[0], &mand8[0], &mand9[0], &mand10[0], &mand11[0], &mand12[0]) != EOF) { - /* Loading Frame Header details */ + /* Set Frame control field details */ lineedit_frame_1->setText (frame1); lineedit_frame_2->setText (frame2); @@ -77,10 +77,10 @@ lineedit_frame_15->setText (frame15); lineedit_frame_16->setText (frame16); - /* Loading NAV Values */ + /* Set NAV Value */ lineedit_NAV->setText (nav); - /* Loading Address Values */ + /* Set Addresses */ lineedit_address1_1->setText (add1_1); lineedit_address1_2->setText (add1_2); lineedit_address1_3->setText (add1_3); @@ -102,7 +102,7 @@ lineedit_address3_5->setText (add3_5); lineedit_address3_6->setText (add3_6); - /* Loading fragment number, sequence number and Capability information elements */ + /* Set fragment number, sequence number and Capability information elements */ lineedit_frag_no->setText (fragno); lineedit_seq_no->setText (seqno); @@ -294,7 +294,6 @@ } /* Saving sent frames as a testid for re-use */ - void mgmt_asso_res_cpp::asso_res_save_click() { if (lineedit_testid->text() != "") @@ -390,12 +389,12 @@ /* inializing lineedit values to local variables */ uint16_t frag_no = lineedit_frag_no->text().toInt(); uint16_t seq_no = lineedit_seq_no->text().toInt(); - uint16_t duration_id = lineedit_NAV->text().toInt(); + uint16_t dur_int = lineedit_NAV->text().toInt(); uint16_t aid_int = lineedit_assoc_id->text().toInt(); - /* validating lineedit values */ - /* validating NAV */ - if (duration_id < 65535 && lineedit_NAV->text() != "") + /* validating other fields */ + + if (dur_int < 65535 && lineedit_NAV->text() != "") { /* validating fragmentation number */ if (frag_no < 16 && lineedit_frag_no->text() != "") @@ -420,11 +419,10 @@ lineedit_cap_info_16->text().toInt() <= 1 && lineedit_cap_info_16->text() != "") { /*validating asso_id field */ - if (aid_int < 2008 && lineedit_assoc_id->text() != "") + if (aid_int < MAX_AID && lineedit_assoc_id->text() != "") { uint16_t status_code = lineedit_status_code->text().toInt(), i; - uint8_t frame_ctrl[2], duration_char[2], aid_char[2]; - uint8_t addr1[6], addr2[6], addr3[6]; + uint8_t frame_ctrl[2], duration_char[2], aid_char[2], addr1[6], addr2[6], addr3[6]; /* Form Frame control */ frame_ctrl[0] = mac.bits_to_byte (lineedit_frame_1->text(), lineedit_frame_2->text(), lineedit_frame_3->text(), lineedit_frame_4->text(), lineedit_frame_5->text(), lineedit_frame_6->text(), lineedit_frame_7->text(), lineedit_frame_8->text()); @@ -433,7 +431,7 @@ frame_ctrl[1] = mac.bits_to_byte (lineedit_frame_9->text(), lineedit_frame_10->text(), lineedit_frame_11->text(), lineedit_frame_12->text(), lineedit_frame_13->text(), lineedit_frame_14->text(), lineedit_frame_15->text(), lineedit_frame_16->text()); for (i = 0;i < 2;i++) - duration_char[i] = * ( ( (char*) & duration_id) + i); + duration_char[i] = * ( ( (char*) & dur_int) + i); /* adress fields initializing to local variable */ addr1[0] = (unsigned char) lineedit_address1_1->text().toInt (&ok , 16); @@ -464,7 +462,7 @@ seq_ctrl_int = seq_ctrl_int | frag_no; for (i = 0;i < 2;i++) - seq_ctrl_char[i] = * ( ( (char*) & seq_ctrl_int) + i); + seq_ctrl_char[i] = * ( ( (unsigned char*) & seq_ctrl_int) + i); /* Formatting Capability information */ uint8_t cap_info[2]; @@ -473,147 +471,126 @@ cap_info[1] = mac.bits_to_byte (lineedit_cap_info_9->text(), lineedit_cap_info_10->text(), lineedit_cap_info_11->text(), lineedit_cap_info_12->text(), lineedit_cap_info_13->text(), lineedit_cap_info_14->text(), lineedit_cap_info_15->text(), lineedit_cap_info_16->text()); for (i = 0;i < 2;i++) - aid_char[i] = * ( ( (char*) & aid_int) + i); + aid_char[i] = * ( ( (unsigned char*) & aid_int) + i); /* Status code formatting*/ uint8_t status_code_char[2]; - uint16_t temp_status_code = mac.get_status_code (combobox_status_code->currentItem(), status_code); + status_code = mac.get_status_code (combobox_status_code->currentItem(), status_code); for (i = 0;i < 2;i++) - status_code_char[i] = * ( ( (char*) & temp_status_code) + i); + status_code_char[i] = * ( ( (unsigned char*) & status_code) + i); - /* typecasting suported rate , Extended supported rate */ + /* Supported rate , Extended supported rate */ uint16_t index = 0, index1 = 0; - uint8_t tmp_val_char[10], tmp_val_esrchar[4], hexrate; + uint8_t srate[8], erate[4], srate_len = 0, srate_id = 0X01, hexrate; if (checkbox_srate_1->isChecked() == 1) { hexrate = mac.map_rate (1, checkbox_mand_1->isChecked()); - tmp_val_char[index++] = * ( ( (char*) & hexrate) + 0); + srate[index++] = * ( ( (char*) & hexrate) + 0); } if (checkbox_srate_2->isChecked() == 1) { hexrate = mac.map_rate (2, checkbox_mand_2->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (char*) & hexrate) ; } if (checkbox_srate_3->isChecked() == 1) { hexrate = mac.map_rate (5.5, checkbox_mand_3->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (char*) & hexrate) ; } if (checkbox_srate_4->isChecked() == 1) { hexrate = mac.map_rate (11, checkbox_mand_4->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (char*) & hexrate) ; } if (checkbox_srate_5->isChecked() == 1) { hexrate = mac.map_rate (6, checkbox_mand_5->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (char*) & hexrate) ; } if (checkbox_srate_6->isChecked() == 1) { hexrate = mac.map_rate (9, checkbox_mand_6->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (char*) & hexrate) ; } if (checkbox_srate_7->isChecked() == 1) { hexrate = mac.map_rate (12, checkbox_mand_7->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (char*) & hexrate) ; } if (checkbox_srate_8->isChecked() == 1) { hexrate = mac.map_rate (18, checkbox_mand_8->isChecked()); - tmp_val_char[index++] = * ( (char*) & hexrate) ; + srate[index++] = * ( (char*) & hexrate) ; } + srate_len = index; - uint16_t len_srate_arr = index; - uint8_t srate_eleid = 0X01; - if (checkbox_esrate_1->isChecked() == 1) { hexrate = mac.map_rate (24, checkbox_mand_9->isChecked()); - tmp_val_esrchar[index1++] = * ( (char*) & hexrate) ; + erate[index1++] = * ( (char*) & hexrate) ; } if (checkbox_esrate_2->isChecked() == 1) { hexrate = mac.map_rate (36, checkbox_mand_10->isChecked()); - tmp_val_esrchar[index1++] = * ( (char*) & hexrate) ; + erate[index1++] = * ( (char*) & hexrate) ; } if (checkbox_esrate_3->isChecked() == 1) { hexrate = mac.map_rate (48, checkbox_mand_11->isChecked()); - tmp_val_esrchar[index1++] = * ( (char*) & hexrate) ; + erate[index1++] = * ( (char*) & hexrate) ; } if (checkbox_esrate_4->isChecked() == 1) { hexrate = mac.map_rate (54, checkbox_mand_12->isChecked()); - tmp_val_esrchar[index1++] = * ( (char*) & hexrate) ; + erate[index1++] = * ( (char*) & hexrate) ; } - uint16_t len_esrate_arr = index1; - uint8_t esrate_eleid = 0X32; + uint16_t erate_len = index1; + uint8_t erate_id = 0X32; + memcpy (frame, &frame_ctrl, sizeof(frame_ctrl)); + frame += sizeof(frame_ctrl); - memcpy (frame, &frame_ctrl, 2); - frame += 2; + memcpy (frame, &duration_char, sizeof(duration_char)); + frame += sizeof(duration_char); - memcpy (frame, &duration_char, 2); - frame += 2; + memcpy (frame, &addr1, MAC_ADDRESS_LEN); + frame += MAC_ADDRESS_LEN; - memcpy (frame, &addr1, 6); - frame += 6; + memcpy (frame, &addr2, MAC_ADDRESS_LEN); + frame += MAC_ADDRESS_LEN; - memcpy (frame, &addr2, 6); - frame += 6; + memcpy (frame, &addr3, MAC_ADDRESS_LEN); + frame += MAC_ADDRESS_LEN; - memcpy (frame, &addr3, 6); - frame += 6; + memcpy (frame, &seq_ctrl_char, sizeof(seq_ctrl_char)); + frame += sizeof(seq_ctrl_char); - memcpy (frame, &seq_ctrl_char, 2); - frame += 2; + memcpy (frame, &cap_info, sizeof(cap_info)); + frame += sizeof(cap_info); - memcpy (frame, &cap_info, 2); - frame += 2; + memcpy (frame, &status_code_char, sizeof(status_code_char)); + frame += sizeof (status_code_char); - memcpy (frame, &status_code_char, 2); - frame += 2; + memcpy (frame, &aid_char, sizeof (aid_char)); + frame += sizeof (aid_char); - memcpy (frame, &aid_char, 2); - frame += 2; - /* appending supported rate and extended supported rate to array */ - if (checkbox_srate_1->isChecked() == 0 && - checkbox_srate_2->isChecked() == 0 && - checkbox_srate_3->isChecked() == 0 && - checkbox_srate_4->isChecked() == 0 && - checkbox_srate_5->isChecked() == 0 && - checkbox_srate_6->isChecked() == 0 && - checkbox_srate_7->isChecked() == 0 && - checkbox_srate_8->isChecked() == 0) + if (srate_len > 0) { - + *frame++ = srate_id; + *frame++ = srate_len; + memcpy (frame, &srate, srate_len); + frame += srate_len; } - else - { - *frame++ = srate_eleid; - *frame++ = len_srate_arr; - memcpy (frame, &tmp_val_char, len_srate_arr); - frame += len_srate_arr; - } - if (checkbox_esrate_1->isChecked() == 0 && - checkbox_esrate_2->isChecked() == 0 && - checkbox_esrate_3->isChecked() == 0 && - checkbox_esrate_4->isChecked() == 0) + if (erate_len > 0) { - + *frame++ = erate_id; + *frame++ = erate_len; + memcpy (frame, &erate, erate_len); + frame += erate_len; } - else - { - *frame++ = esrate_eleid; - *frame++ = len_esrate_arr; - memcpy (frame, &tmp_val_esrchar, len_esrate_arr); - frame += len_esrate_arr; - } int frame_len = frame - &msg[0]; if (lineedit_status_code->isEnabled() == 1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |