Overview
The ExCheck (Exercise Check) component provides comprehensive checklist management functionality for FreeTAKServer. It enables users to create templates, start checklists, track task completion, and collaborate on structured workflows. ExCheck is fully compatible with ATAK and WinTAK checklist features.Architecture
Component Structure
Key Classes
Excheck Facade
Location:FreeTAKServer/components/extended/excheck/excheck_facade.py:17
create_template()- Create new checklist templateget_all_templates()- List all templatesget_template()- Get specific templatestart_checklist()- Start checklist from templateupdate_checklist_task()- Update task statusget_checklist()- Get checklist dataget_checklists()- List all checklistsget_checklist_task()- Get specific taskadd_checklist_to_mission()- Link checklist to mission
ExCheckChecklistController
Location:FreeTAKServer/components/extended/excheck/controllers/excheck_checklist_controller.py:43
Manages active checklists and task operations.
Core Functionality
Template Management
Creating Templates
Method:create_template()
Templates define the structure of checklists:
Retrieving Templates
Checklist Operations
Starting a Checklist
Method:start_checklist()Location:
excheck_checklist_controller.py:67
Updating Tasks
Method:update_checklist_task()Location:
excheck_checklist_controller.py:190
- Standardize task format (WinTAK compatibility)
- Update task in Enterprise Sync
- Update parent checklist XML
- Trigger notification to subscribers
Retrieving Checklists
Mission Integration
Adding Checklist to Mission
Method:add_checklist_to_mission()Location:
excheck_checklist_controller.py:376
Getting Checklist Mission Info
Method:get_checklist_mission()Location:
excheck_checklist_controller.py:358
Notifications
Controller:ExCheckNotificationController
Data Storage
Enterprise Sync Integration
ExCheck uses Enterprise Sync for persistent storage: Templates:Database Models
The persistence layer tracks:- Checklist metadata
- Task associations
- Mission-checklist mappings
Cross-Platform Compatibility
WinTAK Adapter
Controller:ExCheckWintakAdapterMethod:
standardize_task()
Ensures compatibility between ATAK and WinTAK task formats:
- XML structure
- Field naming
- Data formats
Complete Workflow Example
Initialization
On component registration, ExCheck automatically: Method:register()Location:
excheck_facade.py:88
Best Practices
- Template Reuse: Create reusable templates for common procedures
- Meaningful Names: Use descriptive names for checklists and tasks
- Mission Linking: Always link checklists to missions for context
- Task Granularity: Break down procedures into discrete, checkable tasks
- Notifications: Use notifications to keep team members synchronized
- Status Tracking: Regularly retrieve checklist status for monitoring
XML Structure Reference
Checklist XML
Related Components
- Mission - Mission management and linking
- Enterprise Sync - Data storage backend
- Emergency - Can integrate with emergency procedures