# grpc_client

## Environment

- Python: 3.9.25

## Setup

```bash
pip install -r requirements.txt
```

## Generate gRPC code

From repo root:

```bash
python scripts/gen_grpc_py.py
```

This reads `.proto` files under `protos/` and writes Python code to `generated/`.

## Run (module mode)

```bash
python -m clients.movej_client
python -m clients.get_joint_state_client
python -m clients.get_pose_client
python -m clients.torque_on_client
python -m clients.torque_off_client
python -m clients.torque_key_client
python -m clients.press_client
python -m clients.save_joint_to_csv
python -m clients.http_server
```

## UI (PyQt)

```bash
python -m ui.app
```

## Runtime parameters

- gRPC server address/port: set in `clients/base_client.py` (default `192.168.0.222:50052`).
- HTTP server host/port: set in `clients/http_server.py` (default `0.0.0.0:8000`).
- `device_id` defaults to `hc01` in most clients; change in code if needed.
- UI parameters (host/port/device_id/interval) are set in the PyQt window and passed to the runner.


