Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.06 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Documents;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Imaging;
  13. using System.Windows.Navigation;
  14. using System.Windows.Shapes;
  15. using System.Net.Sockets;
  16. using System.Threading;
  17. using System.ComponentModel;
  18. using System.Data;
  19. using System.Drawing;
  20.  
  21.  
  22.  
  23.  
  24. namespace WpfApp3
  25. {
  26. /// <summary>
  27. /// Logika interakcji dla klasy MainWindow.xaml
  28. /// </summary>
  29. public partial class MainWindow : Window
  30. {
  31. TcpClient clientSocket = new TcpClient();
  32. NetworkStream serverStream = default(NetworkStream);
  33. string readdata = null;
  34. byte[] outdata = null;
  35. int i = 0;
  36. int o = 0;
  37. static double max = 40;
  38. static double min = -max;
  39. static double roznica = 13;
  40.  
  41.  
  42. public MainWindow()
  43. {
  44. InitializeComponent();
  45. Rozlacz.IsEnabled = false;
  46. on.Visibility = Visibility.Collapsed;
  47. manual.IsEnabled = false;
  48. auto.IsEnabled = false;
  49. keyboard.IsEnabled = false;
  50.  
  51.  
  52. }
  53.  
  54.  
  55.  
  56.  
  57.  
  58. private void cone()
  59. {
  60. Thread.Sleep(100);
  61. if (!Dispatcher.CheckAccess())
  62. {
  63. this.Dispatcher.Invoke(new Action(cone));
  64. }
  65. else
  66. {
  67. if (clientSocket.Connected == false)
  68. {
  69.  
  70. try
  71. {
  72. clientSocket.Connect("192.168.2." + number.Text, 8000);
  73.  
  74. i = 1;
  75. Thread ctThread = new Thread(GetMessage);
  76. ctThread.Start();
  77.  
  78.  
  79.  
  80. on.Visibility = Visibility.Visible;
  81. Polacz.IsEnabled = false;
  82. Rozlacz.IsEnabled = true;
  83. Send.IsEnabled = true;
  84. manual.IsEnabled = true;
  85. auto.IsEnabled = true;
  86. keyboard.IsEnabled = true;
  87. }
  88.  
  89. catch (System.Net.Sockets.SocketException blad)
  90. {
  91.  
  92. MessageBox.Show(blad.Message);
  93.  
  94.  
  95. }
  96. catch (System.FormatException blad)
  97. {
  98.  
  99. MessageBox.Show(blad.Message);
  100.  
  101.  
  102. }
  103.  
  104. }
  105. }
  106.  
  107. }
  108.  
  109.  
  110. private void GetMessage()
  111. {
  112.  
  113. if (clientSocket.Connected == true)
  114. {
  115. string returndata;
  116. serverStream = clientSocket.GetStream();
  117.  
  118.  
  119.  
  120. while (serverStream != null)
  121. {
  122.  
  123. var buffsize = clientSocket.ReceiveBufferSize;
  124. byte[] instream = new byte[buffsize];
  125.  
  126. try
  127. {
  128. serverStream.Read(instream, 0, buffsize);
  129. }
  130. catch (System.IO.IOException)
  131. {
  132. MessageBox.Show("Rozłączono");
  133. }
  134.  
  135.  
  136. returndata = System.Text.Encoding.ASCII.GetString(instream);
  137.  
  138. readdata = returndata;
  139. Msg();
  140.  
  141.  
  142.  
  143. }
  144. }
  145.  
  146.  
  147.  
  148.  
  149. }
  150.  
  151. private void Msg()
  152. {
  153.  
  154. try
  155. {
  156. if (!Dispatcher.CheckAccess())
  157. {
  158. this.Dispatcher.Invoke(new Action(Msg));
  159. }
  160. else
  161. {
  162. odebrane.Text = readdata;
  163. string bat = readdata.Remove(0, 3);
  164. bat = bat.Remove(4);
  165.  
  166. string bat1 = bat.Remove(0, 2);
  167. string bat2 = bat.Remove(2);
  168. bat = bat1 + bat2;
  169.  
  170. try
  171. {
  172. int bati = Convert.ToInt32(bat, 16);
  173. bat = Convert.ToString(bati);
  174. battery.Text = bat + "mV";
  175. }
  176. catch (System.FormatException)
  177. {
  178.  
  179. }
  180.  
  181. string sens1 = readdata.Remove(0, 7);
  182. sens1 = sens1.Remove(4);
  183.  
  184. try
  185. {
  186. int s1 = Convert.ToInt32(sens1, 16);
  187. if (s1 > 2000)
  188. {
  189. string s11 = sens1.Remove(0, 2);
  190. string s12 = sens1.Remove(2);
  191. sens1 = s11 + s12;
  192. s1 = Convert.ToInt32(sens1, 16);
  193. sens1 = Convert.ToString(s1);
  194. st1.Text = sens1;
  195.  
  196. }
  197. else
  198. {
  199. sens1 = Convert.ToString(s1);
  200.  
  201. }
  202.  
  203. sensor1.Value = s1;
  204. }
  205. catch (System.FormatException)
  206. {
  207.  
  208. }
  209. string sens2 = readdata.Remove(0, 11);
  210. sens2 = sens2.Remove(4);
  211.  
  212. try
  213. {
  214. int s2 = Convert.ToInt32(sens2, 16);
  215. if (s2 > 2000)
  216. {
  217. string s21 = sens2.Remove(0, 2);
  218. string s22 = sens2.Remove(2);
  219. sens2 = s21 + s22;
  220. s2 = Convert.ToInt32(sens2, 16);
  221. sens2 = Convert.ToString(s2);
  222. st2.Text = sens2;
  223. }
  224. else
  225. {
  226. sens2 = Convert.ToString(s2);
  227. st2.Text = sens2;
  228. }
  229.  
  230. sensor2.Value = s2;
  231. }
  232. catch (System.FormatException)
  233. {
  234.  
  235. }
  236. string sens3 = readdata.Remove(0, 15);
  237. sens3 = sens3.Remove(4);
  238.  
  239. try
  240. {
  241. int s3 = Convert.ToInt32(sens3, 16);
  242. if (s3 > 2000)
  243. {
  244. string s31 = sens3.Remove(0, 2);
  245. string s32 = sens3.Remove(2);
  246. sens3 = s31 + s32;
  247. s3 = Convert.ToInt32(sens3, 16);
  248. sens3 = Convert.ToString(s3);
  249. st3.Text = sens3;
  250. }
  251. else
  252. {
  253. sens3 = Convert.ToString(s3);
  254. st3.Text = sens3;
  255. }
  256.  
  257. sensor3.Value = s3;
  258. }
  259. catch (System.FormatException)
  260. {
  261.  
  262. }
  263. string sens4 = readdata.Remove(0, 19);
  264. sens4 = sens4.Remove(4);
  265.  
  266. try
  267. {
  268. int s4 = Convert.ToInt32(sens4, 16);
  269. if (s4 > 2000)
  270. {
  271. string s41 = sens4.Remove(0, 2);
  272. string s42 = sens4.Remove(2);
  273. sens4 = s41 + s42;
  274. s4 = Convert.ToInt32(sens4, 16);
  275. sens4 = Convert.ToString(s4);
  276. st4.Text = sens4;
  277. }
  278. else
  279. {
  280. sens4 = Convert.ToString(s4);
  281. st4.Text = sens4;
  282. }
  283.  
  284. sensor4.Value = s4;
  285. }
  286. catch (System.FormatException)
  287. {
  288.  
  289. }
  290. string sens5 = readdata.Remove(0, 23);
  291. sens5 = sens5.Remove(4);
  292.  
  293. try
  294. {
  295. int s5 = Convert.ToInt32(sens5, 16);
  296. if (s5 > 2000)
  297. {
  298. string s51 = sens5.Remove(0, 2);
  299. string s52 = sens5.Remove(2);
  300. sens5 = s51 + s52;
  301. s5 = Convert.ToInt32(sens5, 16);
  302. sens5 = Convert.ToString(s5);
  303. st5.Text = sens5;
  304. }
  305. else
  306. {
  307. sens5 = Convert.ToString(s5);
  308. st5.Text = sens5;
  309. }
  310. sensor5.Value = s5;
  311. }
  312. catch (System.FormatException)
  313. {
  314.  
  315. }
  316.  
  317.  
  318. }
  319. }
  320. catch (System.Threading.Tasks.TaskCanceledException)
  321. {
  322.  
  323. }
  324.  
  325.  
  326.  
  327. }
  328. private void AutoMessage()
  329. {
  330.  
  331. if (clientSocket.Connected == true)
  332. {
  333.  
  334. while (o == 2)
  335. {
  336. try
  337. {
  338. AutoControl();
  339. try
  340. {
  341. serverStream.Write(outdata, 0, outdata.Length);
  342. }
  343. catch (System.IO.IOException)
  344. {
  345.  
  346. }
  347. serverStream.Flush();
  348. Thread.Sleep(50);
  349. }
  350. catch (System.NullReferenceException)
  351. {
  352.  
  353. }
  354. }
  355. }
  356.  
  357.  
  358. }
  359.  
  360. private void AutoControl()
  361. {
  362. try
  363. {
  364. if (!Dispatcher.CheckAccess())
  365. {
  366. this.Dispatcher.Invoke(new Action(AutoControl));
  367. }
  368. else
  369. {
  370. string start = ("[");
  371. string stop = ("]");
  372. int lwi = System.Convert.ToInt16(motorL.Value);
  373. string lws = System.Convert.ToString(lwi);
  374. string lw = lwi.ToString("X");
  375. if (lw.Length > 2) lw = lw.Remove(0, 6);
  376. if (lwi < 16 && lwi > -1)
  377. {
  378. lw = "0" + lw;
  379. }
  380. int rwi = System.Convert.ToInt16(motorR.Value);
  381. string rws = System.Convert.ToString(rwi);
  382. string rw = rwi.ToString("X");
  383. if (rw.Length > 2) rw = rw.Remove(0, 6);
  384. if (rwi < 16 && rwi > -1)
  385. {
  386. rw = "0" + rw;
  387. }
  388. int led_1i = System.Convert.ToInt16(led1.IsChecked);
  389. int led_2i = 0;
  390. if (led2.IsChecked == true)
  391. {
  392. led_2i = System.Convert.ToInt16(led2.IsChecked) + 1;
  393. }
  394. int led_12i = led_1i + led_2i;
  395. string led_12 = System.Convert.ToString(led_12i);
  396.  
  397. valueL.Text = lws;
  398. valueR.Text = rws;
  399.  
  400. string outstring = start + "0" + led_12 + lw + rw + stop;
  401.  
  402. byte[] outstream = Encoding.ASCII.GetBytes(outstring);
  403.  
  404. wyslane.Text = outstring;
  405. outdata = outstream;
  406. }
  407. }
  408. catch (System.Threading.Tasks.TaskCanceledException)
  409. {
  410.  
  411. }
  412.  
  413. }
  414.  
  415. private void KeyboardMessage()
  416. {
  417.  
  418. if (clientSocket.Connected == true)
  419. {
  420. while (o == 1)
  421. {
  422. try
  423. {
  424. KeyboardControl();
  425. try
  426. {
  427. serverStream.Write(outdata, 0, outdata.Length);
  428. }
  429. catch (System.IO.IOException)
  430. {
  431.  
  432. }
  433. serverStream.Flush();
  434. Thread.Sleep(50);
  435. }
  436. catch (System.NullReferenceException)
  437. {
  438.  
  439. }
  440. }
  441. }
  442.  
  443. }
  444.  
  445. private void KeyboardControl()
  446. {
  447. try
  448. {
  449. if (!Dispatcher.CheckAccess())
  450. {
  451. this.Dispatcher.Invoke(new Action(KeyboardControl));
  452. }
  453. else
  454. {
  455.  
  456. if (Keyboard.IsKeyDown(Key.Up))
  457. {
  458. if (motorL.Value < max) motorL.Value = motorL.Value + 3;
  459. if (motorR.Value < max) motorR.Value = motorR.Value + 3;
  460. }
  461. else
  462. {
  463. if (motorL.Value > 0) motorL.Value = motorL.Value - 2;
  464. if (motorR.Value > 0) motorR.Value = motorR.Value - 2;
  465. }
  466.  
  467. if (Keyboard.IsKeyDown(Key.Down))
  468. {
  469. if (motorL.Value > min) motorL.Value = motorL.Value - 3;
  470. if (motorR.Value > min) motorR.Value = motorR.Value - 3;
  471. }
  472. else
  473. {
  474. if (motorL.Value < 0) motorL.Value = motorL.Value + 2;
  475. if (motorR.Value < 0) motorR.Value = motorR.Value + 2;
  476. }
  477.  
  478. if (Keyboard.IsKeyDown(Key.Left))
  479. {
  480. if (motorL.Value > 0 && motorL.Value < max + roznica && Keyboard.IsKeyDown(Key.Up) && motorR.Value - motorL.Value < 2 * roznica) motorL.Value = motorL.Value - 3;
  481. if (motorR.Value > 0 && motorR.Value < max + roznica && Keyboard.IsKeyDown(Key.Up) && motorR.Value - motorL.Value < 2 * roznica) motorR.Value = motorR.Value + 2;
  482. if (motorL.Value < 0 && motorL.Value > min - roznica && Keyboard.IsKeyDown(Key.Down) && motorR.Value - motorL.Value > 2 * -roznica) motorL.Value = motorL.Value + 3;
  483. if (motorR.Value < 0 && motorR.Value > min - roznica && Keyboard.IsKeyDown(Key.Down) && motorR.Value - motorL.Value > 2 * -roznica) motorR.Value = motorR.Value - 2;
  484. }
  485. else
  486. {
  487. if (Keyboard.IsKeyUp(Key.Right) && motorL.Value > max) motorL.Value = motorL.Value - 2;
  488. if (Keyboard.IsKeyUp(Key.Right) && motorR.Value > max) motorR.Value = motorR.Value - 2;
  489. if (Keyboard.IsKeyUp(Key.Right) && motorL.Value < min) motorL.Value = motorL.Value + 2;
  490. if (Keyboard.IsKeyUp(Key.Right) && motorR.Value < min) motorR.Value = motorR.Value + 2;
  491. }
  492.  
  493. if (Keyboard.IsKeyDown(Key.Right))
  494. {
  495. if (motorL.Value > 0 && motorL.Value < max + roznica && Keyboard.IsKeyDown(Key.Up) && motorL.Value - motorR.Value < 2 * roznica) motorL.Value = motorL.Value + 2;
  496. if (motorR.Value > 0 && motorR.Value < max + roznica && Keyboard.IsKeyDown(Key.Up) && motorL.Value - motorR.Value < 2 * roznica) motorR.Value = motorR.Value - 3;
  497. if (motorL.Value < 0 && motorL.Value > min - roznica && Keyboard.IsKeyDown(Key.Down) && motorL.Value - motorR.Value > 2 * -roznica) motorL.Value = motorL.Value - 2;
  498. if (motorR.Value < 0 && motorR.Value > min - roznica && Keyboard.IsKeyDown(Key.Down) && motorL.Value - motorR.Value > 2 * -roznica) motorR.Value = motorR.Value + 3;
  499. }
  500. else
  501. {
  502. if (Keyboard.IsKeyUp(Key.Left) && motorL.Value > max) motorL.Value = motorL.Value - 2;
  503. if (Keyboard.IsKeyUp(Key.Left) && motorR.Value > max) motorR.Value = motorR.Value - 2;
  504. if (Keyboard.IsKeyUp(Key.Left) && motorL.Value < min) motorL.Value = motorL.Value + 2;
  505. if (Keyboard.IsKeyUp(Key.Left) && motorR.Value < min) motorR.Value = motorR.Value + 2;
  506. }
  507.  
  508. if (Keyboard.IsKeyDown(Key.L))
  509. {
  510. led1.IsChecked = !led1.IsChecked;
  511. }
  512.  
  513. if (Keyboard.IsKeyDown(Key.P))
  514. {
  515. led2.IsChecked = !led2.IsChecked;
  516. }
  517.  
  518.  
  519. string start = ("[");
  520. string stop = ("]");
  521. int lwi = System.Convert.ToInt16(motorL.Value);
  522. string lws = System.Convert.ToString(lwi);
  523. string lw = lwi.ToString("X");
  524. if (lw.Length > 2) lw = lw.Remove(0, 6);
  525. if (lwi < 16 && lwi > -1)
  526. {
  527. lw = "0" + lw;
  528. }
  529. int rwi = System.Convert.ToInt16(motorR.Value);
  530. string rws = System.Convert.ToString(rwi);
  531. string rw = rwi.ToString("X");
  532. if (rw.Length > 2) rw = rw.Remove(0, 6);
  533. if (rwi < 16 && rwi > -1)
  534. {
  535. rw = "0" + rw;
  536. }
  537. int led_1i = System.Convert.ToInt16(led1.IsChecked);
  538. int led_2i = 0;
  539. if (led2.IsChecked == true)
  540. {
  541. led_2i = System.Convert.ToInt16(led2.IsChecked) + 1;
  542. }
  543. int led_12i = led_1i + led_2i;
  544. string led_12 = System.Convert.ToString(led_12i);
  545.  
  546. valueL.Text = lws;
  547. valueR.Text = rws;
  548.  
  549. string outstring = start + "0" + led_12 + lw + rw + stop;
  550.  
  551. byte[] outstream = Encoding.ASCII.GetBytes(outstring);
  552.  
  553. wyslane.Text = outstring;
  554. outdata = outstream;
  555.  
  556. }
  557. }
  558. catch (System.Threading.Tasks.TaskCanceledException)
  559. {
  560.  
  561. }
  562.  
  563.  
  564. }
  565.  
  566.  
  567. private void Send_Click(object sender, RoutedEventArgs e)
  568. {
  569.  
  570.  
  571. }
  572.  
  573.  
  574. private void Rozlacz_Click(object sender, RoutedEventArgs e)
  575. {
  576.  
  577. }
  578.  
  579. private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
  580. {
  581.  
  582. }
  583.  
  584. private void Ipadress_TextChanged(object sender, TextChangedEventArgs e)
  585. {
  586.  
  587. }
  588.  
  589. private void Manual_Click(object sender, RoutedEventArgs e)
  590. {
  591.  
  592.  
  593.  
  594. }
  595.  
  596.  
  597. private void Auto_Click(object sender, RoutedEventArgs e)
  598. {
  599.  
  600.  
  601. }
  602.  
  603. private void Keyboard_Click(object sender, RoutedEventArgs e)
  604. {
  605.  
  606.  
  607.  
  608. }
  609.  
  610. private void Endbtn_Click(object sender, RoutedEventArgs e)
  611. {
  612. System.Diagnostics.Process.GetCurrentProcess().Kill();
  613. }
  614.  
  615. private void Reset_Click(object sender, RoutedEventArgs e)
  616. {
  617. motorL.Value = 0;
  618. motorR.Value = 0;
  619. led1.IsChecked = false;
  620. led2.IsChecked = false;
  621. }
  622.  
  623. private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
  624. {
  625.  
  626. }
  627.  
  628.  
  629.  
  630. private void sensor1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
  631. {
  632.  
  633. }
  634.  
  635. private void motorR_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
  636. {
  637.  
  638. }
  639.  
  640. private void Polacz_Click_1(object sender, RoutedEventArgs e)
  641. {
  642. Thread coneThread = new Thread(cone);
  643. coneThread.Start();
  644. }
  645.  
  646. private void Rozlacz_Click_1(object sender, RoutedEventArgs e)
  647. {
  648. if (clientSocket.Connected == true)
  649. {
  650.  
  651. i = 0;
  652. o = 0;
  653. serverStream.Close();
  654. serverStream = null;
  655. clientSocket.Close();
  656. clientSocket = clientSocket = new TcpClient();
  657. on.Visibility = Visibility.Collapsed;
  658. Rozlacz.IsEnabled = false;
  659. manual.IsEnabled = false;
  660. auto.IsEnabled = false;
  661. keyboard.IsEnabled = false;
  662. Send.IsEnabled = false;
  663. Polacz.IsEnabled = true;
  664. motorL.Value = 0;
  665. motorR.Value = 0;
  666. led1.IsChecked = false;
  667. led2.IsChecked = false;
  668. sensor1.Value = 0;
  669. sensor2.Value = 0;
  670. sensor3.Value = 0;
  671. sensor4.Value = 0;
  672. sensor5.Value = 0;
  673. st1.Text = "";
  674. st2.Text = "";
  675. st3.Text = "";
  676. st4.Text = "";
  677. st5.Text = "";
  678. battery.Text = "";
  679. odebrane.Text = "";
  680. valueL.Text = "";
  681. valueR.Text = "";
  682. }
  683. }
  684.  
  685. private void Keyboard_Click_1(object sender, RoutedEventArgs e)
  686. {
  687. motorL.IsEnabled = false;
  688. motorR.IsEnabled = false;
  689. keyboard.IsEnabled = false;
  690. auto.IsEnabled = true;
  691. manual.IsEnabled = true;
  692. o = 1;
  693. Thread keyboardThread = new Thread(KeyboardMessage);
  694. keyboardThread.Start();
  695. }
  696.  
  697. private void Auto_Click_1(object sender, RoutedEventArgs e)
  698. {
  699. motorL.IsEnabled = true;
  700. motorR.IsEnabled = true;
  701. auto.IsEnabled = false;
  702. keyboard.IsEnabled = true;
  703. manual.IsEnabled = true;
  704. o = 2;
  705. Thread autoThread = new Thread(AutoMessage);
  706. autoThread.Start();
  707. motorL.Value = 0;
  708. motorR.Value = 0;
  709. }
  710.  
  711. private void Send_Click_1(object sender, RoutedEventArgs e)
  712. {
  713. if (clientSocket.Connected == true)
  714. {
  715. if (manual.IsEnabled == false)
  716. {
  717. byte[] outstream = Encoding.ASCII.GetBytes(wyslane.Text);
  718. kod.Text = wyslane.Text;
  719. serverStream.Write(outstream, 0, outstream.Length);
  720. serverStream.Flush();
  721. }
  722. }
  723. }
  724.  
  725. private void Manual_Click_1(object sender, RoutedEventArgs e)
  726. {
  727. motorL.IsEnabled = false;
  728. motorR.IsEnabled = false;
  729. manual.IsEnabled = false;
  730. keyboard.IsEnabled = true;
  731. auto.IsEnabled = true;
  732. o = 0;
  733. motorL.Value = 0;
  734. motorR.Value = 0;
  735. led1.IsChecked = false;
  736. led2.IsChecked = false;
  737. }
  738.  
  739. private void Sensor1_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e)
  740. {
  741.  
  742. }
  743.  
  744. private void Sensor3_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
  745. {
  746.  
  747. }
  748. }
  749. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement