The last three days at Electronica I have been showing people how to build the Robot ARM Controller. In previous posts I talked about the process for the Servo Motor controller and the CapSense user interface.
In this post I am going to focus on the TCP/IP Server running on the Cypress WICED board. Remember that this board performs two functions
- An I2C Master which writes data to the PSoC Servo Motor Controller
- A TCP/IP Server listening on TCP Port 40508. The command format of the TCP/IP Packet is a 2-digit ASCII coded hex number representing the position of motor 1 followed by a 2-digit ASCII coded hex number for motor 2 e.g 3240 takes motor 1 to 0x32 aka 50% and 0x40 aka 64% for motor 2
The first section of code (lines 11-14) gets things going by starting WICED and attaching to the network. The next section (lines 16-26) sets up the I2C Master and creates a standard message buffer (called tx_buffer). Finally on lines 28-30 creates a socket and starts listening to TCP/IP Port 40508.
The main loop of my server starts by waiting for a valid active connection (line 34-36). Then when it gets a valid connection it
- Line 43: receives the data into a packet
- Line 45: gets a pointer (rbuffer) to the data in the packet
- Line 46: translates the ASCII data into integers
- Line 50: frees the tcp pack
- Line 52: sends the updated position to the PSoC via I2C
All of this source code is posted to the iotexpert GitHub site at email@example.com:iotexpert/E2016RobotArm.git