Restructured linux to match Windows
This commit is contained in:
132
linux/templates/README.md.template
Normal file
132
linux/templates/README.md.template
Normal file
@@ -0,0 +1,132 @@
|
||||
# {{PROJECT_NAME}}
|
||||
|
||||
FTC robot project generated by FTC Project Generator v{{GENERATOR_VERSION}}.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Run tests
|
||||
./gradlew test
|
||||
|
||||
# Watch tests (auto-rerun)
|
||||
./gradlew test --continuous
|
||||
|
||||
# Build and check
|
||||
./build.sh
|
||||
|
||||
# Deploy to robot
|
||||
./deploy-to-robot.sh
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
{{PROJECT_NAME}}/
|
||||
├── src/main/java/robot/
|
||||
│ ├── subsystems/ Your robot logic (tested on PC)
|
||||
│ ├── hardware/ FTC hardware implementations
|
||||
│ └── opmodes/ FTC OpModes for Control Hub
|
||||
└── src/test/java/robot/ Unit tests (run without robot)
|
||||
```
|
||||
|
||||
## Development Workflow
|
||||
|
||||
1. **Write code** in `src/main/java/robot/`
|
||||
2. **Write tests** in `src/test/java/robot/`
|
||||
3. **Run tests** with `./gradlew test --continuous`
|
||||
4. **Tests pass** → You're good!
|
||||
|
||||
## Deployment to Robot
|
||||
|
||||
When ready to test on actual hardware:
|
||||
|
||||
1. **Uncomment FTC imports** in:
|
||||
- `src/main/java/robot/hardware/MecanumDrive.java`
|
||||
- `src/main/java/robot/opmodes/TeleOp.java`
|
||||
|
||||
2. **Run deployment script:**
|
||||
```bash
|
||||
./deploy-to-robot.sh
|
||||
```
|
||||
|
||||
The script will:
|
||||
- Deploy your code to SDK TeamCode
|
||||
- Build APK
|
||||
- Install to Control Hub (via USB or WiFi)
|
||||
|
||||
### Connection Methods
|
||||
|
||||
- **USB**: Just plug in and run (recommended)
|
||||
- **WiFi**: Connect to 'FIRST-xxxx-RC' network (IP: 192.168.43.1)
|
||||
- **Custom**: `./deploy-to-robot.sh -i 192.168.1.x`
|
||||
|
||||
## Adding New Subsystems
|
||||
|
||||
Follow the pattern:
|
||||
|
||||
1. **Create subsystem** with inner Hardware interface:
|
||||
```java
|
||||
public class MySubsystem {
|
||||
public interface Hardware {
|
||||
void doThing();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. **Create test** with inline mock:
|
||||
```java
|
||||
class MySubsystemTest {
|
||||
static class MockHardware implements MySubsystem.Hardware {
|
||||
boolean didThing = false;
|
||||
public void doThing() { didThing = true; }
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
3. **Create hardware impl** for robot (keep FTC imports commented during dev)
|
||||
|
||||
## Tips
|
||||
|
||||
- Keep FTC imports commented during development
|
||||
- Write tests for everything - they run instantly on PC
|
||||
- Use `./gradlew test --continuous` for fast iteration
|
||||
- Multiple projects can share the same FTC SDK
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
# Development (on PC)
|
||||
./gradlew test Run all tests
|
||||
./gradlew test --continuous Watch mode
|
||||
|
||||
# Before deployment
|
||||
./build.sh Check for compile errors
|
||||
./build.sh --clean Clean build
|
||||
|
||||
# Deploy to robot
|
||||
./deploy-to-robot.sh Full deployment
|
||||
./deploy-to-robot.sh --help Show options
|
||||
|
||||
# Other
|
||||
./gradlew clean Clean build artifacts
|
||||
./gradlew tasks List available tasks
|
||||
```
|
||||
|
||||
## Upgrading
|
||||
|
||||
To upgrade this project to a newer version of the generator:
|
||||
|
||||
```bash
|
||||
# From parent directory
|
||||
ftc-new-project {{PROJECT_NAME}} --upgrade
|
||||
```
|
||||
|
||||
This will update build files and scripts while preserving your code.
|
||||
|
||||
## Generated by FTC Project Generator
|
||||
|
||||
This project structure separates your robot code from the FTC SDK,
|
||||
making it easy to test on PC and deploy when ready.
|
||||
|
||||
Generator version: {{GENERATOR_VERSION}}
|
||||
FTC SDK version: {{FTC_VERSION}}
|
||||
Reference in New Issue
Block a user