DebuggingForm.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.IO.Ports;
  11. using Tps_LQ_Transmitter.com;
  12. using System.Threading;
  13. using System.Text.RegularExpressions;
  14. namespace Tps_LQ_Transmitter
  15. {
  16. /// <summary>
  17. /// 调试界面
  18. /// </summary>
  19. public partial class DebuggingForm : Form
  20. {
  21. DioControlClass dio = new DioControlClass();
  22. PcGpio gpio = new PcGpio();
  23. RainwormPower power = new RainwormPower();
  24. PcmControl pcm = new PcmControl();
  25. ThreadStart SeriesPortChildref = null;
  26. Thread SeriesPortChildThread = null;
  27. public DebuggingForm()
  28. {
  29. InitializeComponent();
  30. gpio.InitSetOut();
  31. Thread.Sleep(100);
  32. gpio.SwitchControl(0);
  33. for (int i = 1; i <= 8; i++)
  34. {
  35. dio.SupplySwitch(i, DioControlClass.State.OFF);//将所有供电开关关闭
  36. }
  37. power.powerOnoff(RainwormPower.State.OFF);
  38. SeriesPortThread();
  39. rbtnUartMode.Checked = true;
  40. if (!power.UnlockKey())
  41. {
  42. txtbMsg.Text = "内部蚯蚓电源未连接成功!";
  43. }
  44. }
  45. private void DebuggingForm_FormClosed(object sender, FormClosedEventArgs e)
  46. {
  47. dio.portClose();
  48. power.portClose();
  49. pcm.portClose();
  50. SeriesPortChildThread.Abort();
  51. }
  52. #region 8路供电开关控制(+28V)代码
  53. private void btnPowCh_1_Click(object sender, EventArgs e)
  54. {
  55. if (led1.Value == false)
  56. {
  57. dio.SupplySwitch(1, DioControlClass.State.ON);
  58. }
  59. else
  60. {
  61. dio.SupplySwitch(1, DioControlClass.State.OFF);
  62. }
  63. led1.Value = !led1.Value;
  64. }
  65. private void btnPowCh_2_Click(object sender, EventArgs e)
  66. {
  67. if (led2.Value == false)
  68. {
  69. dio.SupplySwitch(2, DioControlClass.State.ON);
  70. }
  71. else
  72. {
  73. dio.SupplySwitch(2, DioControlClass.State.OFF);
  74. }
  75. led2.Value = !led2.Value;
  76. }
  77. private void btnPowCh_3_Click(object sender, EventArgs e)
  78. {
  79. if (led3.Value == false)
  80. {
  81. dio.SupplySwitch(3, DioControlClass.State.ON);
  82. }
  83. else
  84. {
  85. dio.SupplySwitch(3, DioControlClass.State.OFF);
  86. }
  87. led3.Value = !led3.Value;
  88. }
  89. private void btnPowCh_4_Click(object sender, EventArgs e)
  90. {
  91. if (led4.Value == false)
  92. {
  93. dio.SupplySwitch(4, DioControlClass.State.ON);
  94. }
  95. else
  96. {
  97. dio.SupplySwitch(4, DioControlClass.State.OFF);
  98. }
  99. led4.Value = !led4.Value;
  100. }
  101. private void btnPowCh_5_Click(object sender, EventArgs e)
  102. {
  103. if (led5.Value == false)
  104. {
  105. dio.SupplySwitch(5, DioControlClass.State.ON);
  106. }
  107. else
  108. {
  109. dio.SupplySwitch(5, DioControlClass.State.OFF);
  110. }
  111. led5.Value = !led5.Value;
  112. }
  113. private void btnPowCh_6_Click(object sender, EventArgs e)
  114. {
  115. if (led6.Value == false)
  116. {
  117. dio.SupplySwitch(6, DioControlClass.State.ON);
  118. }
  119. else
  120. {
  121. dio.SupplySwitch(6, DioControlClass.State.OFF);
  122. }
  123. led6.Value = !led6.Value;
  124. }
  125. private void btnPowCh_7_Click(object sender, EventArgs e)
  126. {
  127. if (led7.Value == false)
  128. {
  129. dio.SupplySwitch(7, DioControlClass.State.ON);
  130. }
  131. else
  132. {
  133. dio.SupplySwitch(7, DioControlClass.State.OFF);
  134. }
  135. led7.Value = !led7.Value;
  136. }
  137. private void btnPowCh_8_Click(object sender, EventArgs e)
  138. {
  139. if (led8.Value == false)
  140. {
  141. dio.SupplySwitch(8, DioControlClass.State.ON);
  142. }
  143. else
  144. {
  145. dio.SupplySwitch(8, DioControlClass.State.OFF);
  146. }
  147. led8.Value = !led8.Value;
  148. }
  149. #endregion
  150. /// <summary>
  151. /// byte[]数据转字符串输出
  152. /// </summary>
  153. /// <param name="data">byte[]数据</param>
  154. /// <returns>16进制字符串</returns>
  155. public string BytesToHexString(byte[] data)
  156. {
  157. if (data == null)
  158. return "";
  159. StringBuilder sb = new StringBuilder(100);
  160. for (int i = 0; i < data.Length; i++)
  161. {
  162. sb.Append(data[i].ToString("X2") + " ");
  163. }
  164. return sb.ToString();
  165. }
  166. #region JSY电压电流模拟量采集模块读取代码
  167. /// <summary>
  168. /// 点击"读取"按钮执行模拟量(电压、电流)采集
  169. /// </summary>
  170. /// <param name="sender"></param>
  171. /// <param name="e"></param>
  172. private void btnOther_Click(object sender, EventArgs e)
  173. {
  174. double[] dblv = new double[8];
  175. double[] dblc = new double[8];
  176. double[] dblp = new double[8];
  177. string st="";
  178. dblv = dio.ReadAllVolt();
  179. dblc = dio.ReadAllCurr();
  180. dblp = dio.ReadAllPower();
  181. txtbVoltCh_1.Text = dblv[0].ToString();
  182. txtbCurrCh_1.Text = dblc[0].ToString();
  183. txtbVoltCh_2.Text = dblv[1].ToString();
  184. txtbCurrCh_2.Text = dblc[1].ToString();
  185. txtbVoltCh_3.Text = dblv[2].ToString();
  186. txtbCurrCh_3.Text = dblc[2].ToString();
  187. txtbVoltCh_4.Text = dblv[3].ToString();
  188. txtbCurrCh_4.Text = dblc[3].ToString();
  189. txtbVoltCh_5.Text = dblv[4].ToString();
  190. txtbCurrCh_5.Text = dblc[4].ToString();
  191. txtbVoltCh_6.Text = dblv[5].ToString();
  192. txtbCurrCh_6.Text = dblc[5].ToString();
  193. txtbVoltCh_7.Text = dblv[6].ToString();
  194. txtbCurrCh_7.Text = dblc[6].ToString();
  195. txtbVoltCh_8.Text = dblv[7].ToString();
  196. txtbCurrCh_8.Text = dblc[7].ToString();
  197. for (int i = 0; i < 8; i++)
  198. {
  199. st += dblp[0].ToString()+";";
  200. }
  201. txtbMsg.Text ="供电功率:"+ st;
  202. }
  203. #endregion
  204. #region 射频开关2控制(一分二)代码[衰减器/陷波器]
  205. //此处是切换衰减器与陷波器的一分二开关控制代码[off为衰减器/ON为陷波器]
  206. private void chkAyCh_1_CheckedChanged(object sender, EventArgs e)
  207. {
  208. if (chkAyCh_1.Checked== true)
  209. {
  210. //chkAyCh_1.Checked = true;
  211. chkAyCh_2.Checked = false;
  212. chkAyCh_3.Checked = false;
  213. chkAyCh_4.Checked = false;
  214. chkAyCh_5.Checked = false;
  215. chkAyCh_6.Checked = false;
  216. chkAyCh_7.Checked = false;
  217. chkAyCh_8.Checked = false;
  218. gpio.SwitchControl(1);
  219. }
  220. else
  221. {
  222. gpio.SwitchControl(0);
  223. }
  224. }
  225. private void chkAyCh_2_CheckedChanged(object sender, EventArgs e)
  226. {
  227. if (chkAyCh_2.Checked == true)
  228. {
  229. chkAyCh_1.Checked = false;
  230. //chkAyCh_2.Checked = false;
  231. chkAyCh_3.Checked = false;
  232. chkAyCh_4.Checked = false;
  233. chkAyCh_5.Checked = false;
  234. chkAyCh_6.Checked = false;
  235. chkAyCh_7.Checked = false;
  236. chkAyCh_8.Checked = false;
  237. gpio.SwitchControl(2);
  238. }
  239. else
  240. {
  241. gpio.SwitchControl(0);
  242. }
  243. }
  244. private void chkAyCh_3_CheckedChanged(object sender, EventArgs e)
  245. {
  246. if (chkAyCh_3.Checked == true)
  247. {
  248. chkAyCh_1.Checked = false;
  249. chkAyCh_2.Checked = false;
  250. //chkAyCh_3.Checked = false;
  251. chkAyCh_4.Checked = false;
  252. chkAyCh_5.Checked = false;
  253. chkAyCh_6.Checked = false;
  254. chkAyCh_7.Checked = false;
  255. chkAyCh_8.Checked = false;
  256. gpio.SwitchControl(3);
  257. }
  258. else
  259. {
  260. gpio.SwitchControl(0);
  261. }
  262. }
  263. private void chkAyCh_4_CheckedChanged(object sender, EventArgs e)
  264. {
  265. if (chkAyCh_4.Checked == true)
  266. {
  267. chkAyCh_1.Checked = false;
  268. chkAyCh_2.Checked = false;
  269. chkAyCh_3.Checked = false;
  270. //chkAyCh_4.Checked = false;
  271. chkAyCh_5.Checked = false;
  272. chkAyCh_6.Checked = false;
  273. chkAyCh_7.Checked = false;
  274. chkAyCh_8.Checked = false;
  275. gpio.SwitchControl(4);
  276. }
  277. else
  278. {
  279. gpio.SwitchControl(0);
  280. }
  281. }
  282. private void chkAyCh_5_CheckedChanged(object sender, EventArgs e)
  283. {
  284. if (chkAyCh_5.Checked == true)
  285. {
  286. chkAyCh_1.Checked = false;
  287. chkAyCh_2.Checked = false;
  288. chkAyCh_3.Checked = false;
  289. chkAyCh_4.Checked = false;
  290. //chkAyCh_5.Checked = false;
  291. chkAyCh_6.Checked = false;
  292. chkAyCh_7.Checked = false;
  293. chkAyCh_8.Checked = false;
  294. gpio.SwitchControl(5);
  295. }
  296. else
  297. {
  298. gpio.SwitchControl(0);
  299. }
  300. }
  301. private void chkAyCh_6_CheckedChanged(object sender, EventArgs e)
  302. {
  303. if (chkAyCh_6.Checked == true)
  304. {
  305. chkAyCh_1.Checked = false;
  306. chkAyCh_2.Checked = false;
  307. chkAyCh_3.Checked = false;
  308. chkAyCh_4.Checked = false;
  309. chkAyCh_5.Checked = false;
  310. //chkAyCh_6.Checked = false;
  311. chkAyCh_7.Checked = false;
  312. chkAyCh_8.Checked = false;
  313. gpio.SwitchControl(6);
  314. }
  315. else
  316. {
  317. gpio.SwitchControl(0);
  318. }
  319. }
  320. private void chkAyCh_7_CheckedChanged(object sender, EventArgs e)
  321. {
  322. if (chkAyCh_7.Checked == true)
  323. {
  324. chkAyCh_1.Checked = false;
  325. chkAyCh_2.Checked = false;
  326. chkAyCh_3.Checked = false;
  327. chkAyCh_4.Checked = false;
  328. chkAyCh_5.Checked = false;
  329. chkAyCh_6.Checked = false;
  330. //chkAyCh_7.Checked = false;
  331. chkAyCh_8.Checked = false;
  332. gpio.SwitchControl(7);
  333. }
  334. else
  335. {
  336. gpio.SwitchControl(0);
  337. }
  338. }
  339. private void chkAyCh_8_CheckedChanged(object sender, EventArgs e)
  340. {
  341. if (chkAyCh_8.Checked == true)
  342. {
  343. chkAyCh_1.Checked = false;
  344. chkAyCh_2.Checked = false;
  345. chkAyCh_3.Checked = false;
  346. chkAyCh_4.Checked = false;
  347. chkAyCh_5.Checked = false;
  348. chkAyCh_6.Checked = false;
  349. chkAyCh_7.Checked = false;
  350. //chkAyCh_8.Checked = false;
  351. gpio.SwitchControl(8);
  352. }
  353. else
  354. {
  355. gpio.SwitchControl(0);
  356. }
  357. }
  358. private void chkAllSwitchDo_CheckedChanged(object sender, EventArgs e)
  359. {
  360. if (chkAllSwitchDo.Checked == true)
  361. {
  362. gpio.AllSwitchBandstopft();
  363. chkAyCh_1.Enabled = false;
  364. chkAyCh_2.Enabled = false;
  365. chkAyCh_3.Enabled = false;
  366. chkAyCh_4.Enabled = false;
  367. chkAyCh_5.Enabled = false;
  368. chkAyCh_6.Enabled = false;
  369. chkAyCh_7.Enabled = false;
  370. chkAyCh_8.Enabled = false;
  371. }
  372. else
  373. {
  374. gpio.AllSwitchAttenuator();
  375. chkAyCh_1.Enabled = true;
  376. chkAyCh_2.Enabled = true;
  377. chkAyCh_3.Enabled = true;
  378. chkAyCh_4.Enabled = true;
  379. chkAyCh_5.Enabled = true;
  380. chkAyCh_6.Enabled = true;
  381. chkAyCh_7.Enabled = true;
  382. chkAyCh_8.Enabled = true;
  383. }
  384. }
  385. #endregion
  386. #region 射频开关1控制(一分八)代码
  387. private void chkStCh_1_CheckedChanged(object sender, EventArgs e)
  388. {
  389. if (chkStCh_1.Checked == true)
  390. {
  391. //chkStCh_1.Checked = false;
  392. chkStCh_2.Checked = false;
  393. chkStCh_3.Checked = false;
  394. chkStCh_4.Checked = false;
  395. chkStCh_5.Checked = false;
  396. chkStCh_6.Checked = false;
  397. chkStCh_7.Checked = false;
  398. chkStCh_8.Checked = false;
  399. dio.OneToEight(1, DioControlClass.State.ON);
  400. }
  401. else
  402. {
  403. dio.OneToEight(1,DioControlClass.State.OFF);
  404. }
  405. }
  406. private void chkStCh_2_CheckedChanged(object sender, EventArgs e)
  407. {
  408. if (chkStCh_2.Checked == true)
  409. {
  410. chkStCh_1.Checked = false;
  411. //chkStCh_2.Checked = false;
  412. chkStCh_3.Checked = false;
  413. chkStCh_4.Checked = false;
  414. chkStCh_5.Checked = false;
  415. chkStCh_6.Checked = false;
  416. chkStCh_7.Checked = false;
  417. chkStCh_8.Checked = false;
  418. dio.OneToEight(2, DioControlClass.State.ON);
  419. }
  420. else
  421. {
  422. dio.OneToEight(2, DioControlClass.State.OFF);
  423. }
  424. }
  425. private void chkStCh_3_CheckedChanged(object sender, EventArgs e)
  426. {
  427. if (chkStCh_3.Checked == true)
  428. {
  429. chkStCh_1.Checked = false;
  430. chkStCh_2.Checked = false;
  431. //chkStCh_3.Checked = false;
  432. chkStCh_4.Checked = false;
  433. chkStCh_5.Checked = false;
  434. chkStCh_6.Checked = false;
  435. chkStCh_7.Checked = false;
  436. chkStCh_8.Checked = false;
  437. dio.OneToEight(3, DioControlClass.State.ON);
  438. }
  439. else
  440. {
  441. dio.OneToEight(3, DioControlClass.State.OFF);
  442. }
  443. }
  444. private void chkStCh_4_CheckedChanged(object sender, EventArgs e)
  445. {
  446. if (chkStCh_4.Checked == true)
  447. {
  448. chkStCh_1.Checked = false;
  449. chkStCh_2.Checked = false;
  450. chkStCh_3.Checked = false;
  451. //chkStCh_4.Checked = false;
  452. chkStCh_5.Checked = false;
  453. chkStCh_6.Checked = false;
  454. chkStCh_7.Checked = false;
  455. chkStCh_8.Checked = false;
  456. dio.OneToEight(4, DioControlClass.State.ON);
  457. }
  458. else
  459. {
  460. dio.OneToEight(4, DioControlClass.State.OFF);
  461. }
  462. }
  463. private void chkStCh_5_CheckedChanged(object sender, EventArgs e)
  464. {
  465. if (chkStCh_5.Checked == true)
  466. {
  467. chkStCh_1.Checked = false;
  468. chkStCh_2.Checked = false;
  469. chkStCh_3.Checked = false;
  470. chkStCh_4.Checked = false;
  471. //chkStCh_5.Checked = false;
  472. chkStCh_6.Checked = false;
  473. chkStCh_7.Checked = false;
  474. chkStCh_8.Checked = false;
  475. dio.OneToEight(5, DioControlClass.State.ON);
  476. }
  477. else
  478. {
  479. dio.OneToEight(5, DioControlClass.State.OFF);
  480. }
  481. }
  482. private void chkStCh_6_CheckedChanged(object sender, EventArgs e)
  483. {
  484. if (chkStCh_6.Checked == true)
  485. {
  486. chkStCh_1.Checked = false;
  487. chkStCh_2.Checked = false;
  488. chkStCh_3.Checked = false;
  489. chkStCh_4.Checked = false;
  490. chkStCh_5.Checked = false;
  491. //chkStCh_6.Checked = false;
  492. chkStCh_7.Checked = false;
  493. chkStCh_8.Checked = false;
  494. dio.OneToEight(6, DioControlClass.State.ON);
  495. }
  496. else
  497. {
  498. dio.OneToEight(6, DioControlClass.State.OFF);
  499. }
  500. }
  501. private void chkStCh_7_CheckedChanged(object sender, EventArgs e)
  502. {
  503. if (chkStCh_7.Checked == true)
  504. {
  505. chkStCh_1.Checked = false;
  506. chkStCh_2.Checked = false;
  507. chkStCh_3.Checked = false;
  508. chkStCh_4.Checked = false;
  509. chkStCh_5.Checked = false;
  510. chkStCh_6.Checked = false;
  511. //chkStCh_7.Checked = false;
  512. chkStCh_8.Checked = false;
  513. dio.OneToEight(7, DioControlClass.State.ON);
  514. }
  515. else
  516. {
  517. dio.OneToEight(7, DioControlClass.State.OFF);
  518. }
  519. }
  520. private void chkStCh_8_CheckedChanged(object sender, EventArgs e)
  521. {
  522. if (chkStCh_8.Checked == true)
  523. {
  524. chkStCh_1.Checked = false;
  525. chkStCh_2.Checked = false;
  526. chkStCh_3.Checked = false;
  527. chkStCh_4.Checked = false;
  528. chkStCh_5.Checked = false;
  529. chkStCh_6.Checked = false;
  530. chkStCh_7.Checked = false;
  531. //chkStCh_8.Checked = false;
  532. dio.OneToEight(8, DioControlClass.State.ON);
  533. }
  534. else
  535. {
  536. dio.OneToEight(8, DioControlClass.State.OFF);
  537. }
  538. }
  539. #endregion
  540. #region 射频开关3控制(一分四)代码
  541. private void chkBxCh_1_CheckedChanged(object sender, EventArgs e)
  542. {
  543. if (chkBxCh_1.Checked == true)
  544. {
  545. //chkBxCh_1.Checked = false;
  546. chkBxCh_2.Checked = false;
  547. chkBxCh_3.Checked = false;
  548. chkBxCh_4.Checked = false;
  549. dio.OneToFour(1, DioControlClass.State.ON);
  550. }
  551. else
  552. {
  553. dio.OneToFour(1, DioControlClass.State.OFF);
  554. }
  555. }
  556. private void chkBxCh_2_CheckedChanged(object sender, EventArgs e)
  557. {
  558. if (chkBxCh_2.Checked == true)
  559. {
  560. chkBxCh_1.Checked = false;
  561. //chkBxCh_2.Checked = false;
  562. chkBxCh_3.Checked = false;
  563. chkBxCh_4.Checked = false;
  564. dio.OneToFour(2, DioControlClass.State.ON);
  565. }
  566. else
  567. {
  568. dio.OneToFour(2, DioControlClass.State.OFF);
  569. }
  570. }
  571. private void chkBxCh_3_CheckedChanged(object sender, EventArgs e)
  572. {
  573. if (chkBxCh_3.Checked == true)
  574. {
  575. chkBxCh_1.Checked = false;
  576. chkBxCh_2.Checked = false;
  577. //chkBxCh_3.Checked = false;
  578. chkBxCh_4.Checked = false;
  579. dio.OneToFour(3, DioControlClass.State.ON);
  580. }
  581. else
  582. {
  583. dio.OneToFour(3, DioControlClass.State.OFF);
  584. }
  585. }
  586. private void chkBxCh_4_CheckedChanged(object sender, EventArgs e)
  587. {
  588. if (chkBxCh_4.Checked == true)
  589. {
  590. chkBxCh_1.Checked = false;
  591. chkBxCh_2.Checked = false;
  592. chkBxCh_3.Checked = false;
  593. //chkBxCh_4.Checked = false;
  594. dio.OneToFour(4, DioControlClass.State.ON);
  595. }
  596. else
  597. {
  598. dio.OneToFour(4, DioControlClass.State.OFF);
  599. }
  600. }
  601. #endregion
  602. #region 射频开关4(一分二)代码[调制解调通道切换]
  603. private void chkCzCh_CheckedChanged(object sender, EventArgs e)
  604. {
  605. if (chkCzCh.Checked == true)
  606. {
  607. dio.OneToTwo(DioControlClass.State.ON);
  608. }
  609. else
  610. {
  611. dio.OneToTwo(DioControlClass.State.OFF);
  612. }
  613. }
  614. #endregion
  615. #region 内部电源控制代码
  616. private void ChkPowerOnOff_CheckedChanged(object sender, EventArgs e)
  617. {
  618. if (ChkPowerOnOff.Checked == true)
  619. {
  620. power.powerOnoff(RainwormPower.State.ON);
  621. }
  622. else
  623. {
  624. power.powerOnoff(RainwormPower.State.OFF);
  625. }
  626. }
  627. private void btnPowerSetting_Click(object sender, EventArgs e)
  628. {
  629. power.powerSetting(Convert.ToDouble(txtbVoltSetValue.Text),Convert.ToDouble(txtbCurrSetValue.Text));
  630. }
  631. #endregion
  632. #region PCM控制代码
  633. string tamp = "";
  634. public void Displaywhile()
  635. {
  636. string st;
  637. while (true)
  638. {
  639. byte[] byrd = pcm.OnlyRead();
  640. //if (byrd != null && byrd[0] == 0xF0 && byrd[1] == 0x0F && byrd[2] == 0x03)
  641. {
  642. //byte[] br = new byte[byrd.Length-6];
  643. //for (int i = 0; i < br.Length; i++)
  644. //{
  645. // br[i] = byrd[6 + i];
  646. //}
  647. st = BytesToHexString(byrd);
  648. if (st != "" && st != tamp)
  649. {
  650. tamp = st;
  651. }
  652. }
  653. Thread.Sleep(100);
  654. }
  655. }
  656. public void SeriesPortThread()
  657. {
  658. SeriesPortChildref = new ThreadStart(Displaywhile);
  659. SeriesPortChildThread = new Thread(SeriesPortChildref);
  660. SeriesPortChildThread.Start();
  661. }
  662. private void btnPcmSendx_Click(object sender, EventArgs e)
  663. {
  664. string str = txtbPcmSend.Text;
  665. if (str!="" && str!=null)
  666. {
  667. string[] sArray = Regex.Split(str, " ", RegexOptions.IgnoreCase);
  668. byte[] bytx = new byte[sArray.Length];
  669. for (int i = 0; i < sArray.Length; i++)
  670. {
  671. bytx[i] = Convert.ToByte(sArray[i], 16);
  672. }
  673. txtbMsg.Text = pcm.DataSend(bytx,0).ToString();
  674. }
  675. }
  676. private void btnCleartxtbPcmRd_Click(object sender, EventArgs e)
  677. {
  678. tamp ="";
  679. }
  680. private void btnPcmSetting_Click(object sender, EventArgs e)
  681. {
  682. string mode = "UART";
  683. string choice = "NONE";
  684. int baud = 230400;
  685. if (rbtnUartMode.Checked==true && rbtnHdlcMode.Checked==false)
  686. {
  687. mode = "UART";
  688. gpbHdlcTr.Enabled = false;
  689. gpbUartCheck.Enabled = true;
  690. }
  691. else if (rbtnUartMode.Checked == false && rbtnHdlcMode.Checked == true)
  692. {
  693. mode = "HDLC";
  694. gpbHdlcTr.Enabled = true;
  695. gpbUartCheck.Enabled = false;
  696. }
  697. if (rbtnRise.Checked == true && rbtnHdlcMode.Checked == true)
  698. {
  699. choice = "RISE";
  700. }
  701. else if (rbtnRise.Checked == false && rbtnHdlcMode.Checked == true)
  702. {
  703. choice = "FALL";
  704. }
  705. if (rbtnOdd.Checked==true && rbtnUartMode.Checked == true)
  706. {
  707. choice = "ODD";
  708. }
  709. else if (rbtnEven.Checked==true && rbtnUartMode.Checked == true)
  710. {
  711. choice = "EVEN";
  712. }
  713. else if (rbtnNone.Checked==true && rbtnUartMode.Checked == true)
  714. {
  715. choice = "NONE";
  716. }
  717. baud = int.Parse(txtbBaudrate.Text);
  718. pcm.Setting(mode, choice, baud);
  719. }
  720. private void rbtnUartMode_CheckedChanged(object sender, EventArgs e)
  721. {
  722. if (rbtnUartMode.Checked == true)
  723. {
  724. gpbHdlcTr.Enabled = false;
  725. gpbUartCheck.Enabled = true;
  726. rbtnNone.Checked = true;
  727. }
  728. else if (rbtnHdlcMode.Checked == true)
  729. {
  730. gpbHdlcTr.Enabled = true;
  731. gpbUartCheck.Enabled = false;
  732. rbtnRise.Checked = true;
  733. }
  734. }
  735. private void rbtnHdlcMode_CheckedChanged(object sender, EventArgs e)
  736. {
  737. if (rbtnUartMode.Checked == true)
  738. {
  739. gpbHdlcTr.Enabled = false;
  740. gpbUartCheck.Enabled = true;
  741. rbtnNone.Checked = true;
  742. }
  743. else if (rbtnHdlcMode.Checked == true)
  744. {
  745. gpbHdlcTr.Enabled = true;
  746. gpbUartCheck.Enabled = false;
  747. rbtnRise.Checked = true;
  748. }
  749. }
  750. private void chkTimerEn_CheckedChanged(object sender, EventArgs e)
  751. {
  752. timer2.Interval = int.Parse(txtbTimer2Num.Text);
  753. timer2.Enabled = chkTimerEn.Checked;
  754. }
  755. /// <summary>
  756. /// 定时器1:定时刷新PCM接收文本窗口
  757. /// </summary>
  758. /// <param name="sender"></param>
  759. /// <param name="e"></param>
  760. private void timer1_Tick(object sender, EventArgs e)
  761. {
  762. txtbPcmRd.Text = tamp;
  763. }
  764. /// <summary>
  765. /// 定时器2:PCM定时发送
  766. /// </summary>
  767. /// <param name="sender"></param>
  768. /// <param name="e"></param>
  769. private void timer2_Tick(object sender, EventArgs e)
  770. {
  771. string str = txtbPcmSend.Text;
  772. if (str != "" && str != null)
  773. {
  774. string[] sArray = Regex.Split(str, " ", RegexOptions.IgnoreCase);
  775. byte[] bytx = new byte[sArray.Length];
  776. for (int i = 0; i < sArray.Length; i++)
  777. {
  778. bytx[i] = Convert.ToByte(sArray[i], 16);
  779. }
  780. txtbMsg.Text = pcm.DataSend(bytx,0).ToString();
  781. }
  782. }
  783. private void txtbTimer2Num_TextChanged(object sender, EventArgs e)
  784. {
  785. timer2.Interval = int.Parse(txtbTimer2Num.Text);
  786. }
  787. #endregion
  788. }
  789. }