Go to file
2022-05-26 21:27:22 +00:00
appendixes added appendixB/C 2022-05-26 21:17:54 +00:00
.gitignore final 2022-05-20 12:25:09 +02:00
autostart.sh final 2022-05-20 12:25:09 +02:00
client.c final 2022-05-20 12:25:09 +02:00
commands.txt final 2022-05-20 12:25:09 +02:00
config.txt final 2022-05-20 12:25:09 +02:00
demo.c final 2022-05-20 12:25:09 +02:00
README.md Update 'README.md' 2022-05-26 21:27:22 +00:00
rs232.c final 2022-05-20 12:25:09 +02:00
rs232.h final 2022-05-20 12:25:09 +02:00
server.c final 2022-05-20 12:25:09 +02:00

BachelorThesis

About

This repository contains source codes for client-server network application capable to communicate with distance laser sensor DLS-C 15 via RS-232 interface, which was implemented as a part of bachelor thesis.

Author

Author: Jozef Simko

School year: 3., Bachelor study, 2021/22

Study program: Computer Networks

Organization: Technical University of Kosice (TUKE), Faculty of Electrical Engineering and Informatics (FEI)

Building

Implemented and tested on:

Platform OS compiler
Linux Ubuntu 20.04.1 WLS2 gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)
Windows Windows 10.0.19043 gcc version 11.2.0 (MinGW-W64 x86_64-posix-seh)
Raspberry Pi Linux raspberrypi 5.10.17 gcc version 8.3.0 (Raspbian 8.3.0-6+rpi1)

LINUX

  • CLIENT
    • gcc client.c -Wall -Werror -Wextra -o client
  • SERVER
    • gcc server.c rs232.c -Wall -Werroe -Wextra -o client

WINDOWS

  • CLIENT
    • gcc client.c -Wall -Wextra -lwsock32 -o client
  • SERVER
    • gcc server.c rs232.c -lwsock32 -Wall -Werror -Wextra -o client

Launch

Server

Server can be launched with 1 or 2 input parameters. The number of parameters determines what mode will be used - manual or automatic mode.

port - specific number to identify communication processes of server

[config_file] - configuration file with exact name of variables - check config.cfg file as example

Manual mode

  • server waits for input commands from client, sends them to laser sensor and returns results back to client
    • ./server <port>

Automatic mode

  • server loads variables from configuration file config.txt, starts measuring and sends results to client continuously.
    • ./server <port> [config_file]

Client

Client has to be lauched with 2 input parameters. If server is in manual mode, the client always loads input commands from commands.txt.

IP address - IP address of server the client tries to connect

port - port number of server

  • ./client <IP address> <port>

Demo

Demo program demonstrates how to create client-like program, which can connect to server in automatic mode and process resulting data.

Building

UNIX - gcc demo.c -Wall -Werror -Wextra -o demo

WINDOWS - gcc demo.c -Wall -Wextra -lwsock32 -o demo

Launch

No input parameters.

Macros defines multiple variables:

#define IP_ADDRESS "192.168.0.101"	// IP address of server
#define PORT 32500			// server port number
#define MAX_VALUE 1265			// upper limit to compare (depends on used units)
#define MIN_VALUE 1200			// lower limit to compare (depends on used units)

References

WinLibs GCC

RS-232 library