A Serial Port Communication Tool with Chat-like Interface
Serial Chat is an innovative serial port communication tool that transforms the traditional serial debugging experience into a chat-like interface. Each serial port is treated as a "user" that can send and receive messages, just like in a messaging application.
- Each serial port is represented as a "friend" in your friend list
- Online status indicates connection state
- Preserve offline ports with custom remarks
- Messages displayed as chat bubbles
- Sent messages on the right (green)
- Received messages on the left (white)
- Timestamp and port name for each message
- Create custom groups with multiple serial ports
- Message forwarding between group members
- Monitor communication between different devices
- Text and Hexadecimal display modes
- Custom remarks for serial ports
- Persistent friend list and message history
- Search functionality
- Data export
+------------------------------------------+
| Menu Bar |
+------------------------------------------+
| | |
| Friend | Chat Area |
| List | +-------------------------+ |
| | | Chat Bubbles | |
| Online | | ... | |
| Offline | +-------------------------+ |
| Groups | | Input Area | |
| | +-------------------------+ |
+------------------------------------------+
| Status Bar |
+------------------------------------------+
- Qt 5.12 or Qt 5.15
- CMake 3.14+
- C++17 compatible compiler
- Google Test (for unit tests)
git clone https://github.com/yourusername/Serial-Chat.git
cd Serial-Chat# Create build directory
mkdir build && cd build
# Configure
cmake .. -DCMAKE_PREFIX_PATH=/path/to/Qt
# Build
cmake --build .
# Run
./SerialChat| Option | Default | Description |
|---|---|---|
BUILD_TESTS |
ON | Build unit tests |
cd build
ctest --output-on-failure
# Or run directly
./SerialChat_testsSerial-Chat/
├── CMakeLists.txt # CMake configuration
├── README.md # This file
├── README_CN.md # Chinese documentation
├── src/
│ ├── main.cpp # Entry point
│ ├── core/ # Core business logic
│ ├── models/ # Data models
│ ├── ui/ # User interface components
│ └── utils/ # Utility classes
├── tests/ # Unit tests
├── resources/ # Resource files
└── docs/ # Documentation
- Click "Add Port" button
- Select the port and configure settings
- Click OK to add to friend list
- Click on a port in the friend list
- The port will automatically connect
- Green indicator shows online status
- Select a port from the friend list
- Type your message in the input area
- Click "Send" or press Enter
- Toggle "Hex Mode" to send hexadecimal data
- Click "Group" button
- Enter group name and description
- Select at least 2 members
- Enable "Message Forwarding" to relay messages between ports
- Click "Create"
- Right-click on a port in the friend list
- Select "Set Remark"
- Enter a custom name for the port
| Setting | Options | Default |
|---|---|---|
| Baud Rate | 1200 - 921600 | 115200 |
| Data Bits | 5, 6, 7, 8 | 8 |
| Stop Bits | 1, 1.5, 2 | 1 |
| Parity | None, Even, Odd, Mark, Space | None |
| Flow Control | None, Hardware, Software | None |
Application data is stored in:
- Windows:
%APPDATA%/SerialChat/ - macOS:
~/Library/Application Support/SerialChat/ - Linux:
~/.local/share/SerialChat/
| Shortcut | Action |
|---|---|
| F5 | Refresh port list |
| Ctrl+N | Add new port |
| Ctrl+Q | Quit |
| Enter | Send message |
See Development Documentation for:
- Architecture overview
- Code conventions
- API documentation
- Testing guidelines
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Qt Framework for the excellent cross-platform GUI toolkit
- Google Test for the testing framework
