Blame view

software/simple_client 1.33 KB
14b996da3   benny   First commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  #!/usr/bin/env python3
  
  import serial
  import select
  import sys
  
  
  if len(sys.argv) != 2:
      print ("Correct usage: script, serial_port")
      exit()
  
  port = str(sys.argv[1])
  scom = serial.Serial(port=port,
                       baudrate=115200,
                       timeout=1,
                       xonxoff=False,
                       rtscts=False,
                       dsrdtr=True)
  
  # maintains a list of possible input streams
  stream_list = [sys.stdin, scom]
  
  while True:
      """ There are two possible input situations. Either the
      user wants to give manual input to send to other people,
      or the server is sending a message to be printed on the
      screen. Select returns from sockets_list, the stream that
      is reader for input. So for example, if the server wants
      to send a message, then the if condition will hold true
      below.If the user wants to send a message, the else
      condition will evaluate as true"""
      read_fd, write_fd, error_fd = select.select(stream_list,[],[])
  
      for fd in read_fd:
          if fd == scom:
              message = scom.read(2048).decode('utf8')
              print("Receive:" + message)
          else:
              message = sys.stdin.readline()
              scom.write(message.encode('utf8'))
              sys.stdout.write("<You>")
              sys.stdout.write(message)
              sys.stdout.flush()
  scom.close()