Skip to main content

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
Public Methods:
  • create_template() - Create new checklist template
  • get_all_templates() - List all templates
  • get_template() - Get specific template
  • start_checklist() - Start checklist from template
  • update_checklist_task() - Update task status
  • get_checklist() - Get checklist data
  • get_checklists() - List all checklists
  • get_checklist_task() - Get specific task
  • add_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:
Template Structure (XML):

Retrieving Templates

Checklist Operations

Starting a Checklist

Method: start_checklist()
Location: excheck_checklist_controller.py:67
Usage Example:

Updating Tasks

Method: update_checklist_task()
Location: excheck_checklist_controller.py:190
Task Update Process:
  1. Standardize task format (WinTAK compatibility)
  2. Update task in Enterprise Sync
  3. Update parent checklist XML
  4. Trigger notification to subscribers

Retrieving Checklists

Mission Integration

Adding Checklist to Mission

Method: add_checklist_to_mission()
Location: excheck_checklist_controller.py:376
This creates external data link in the mission:

Getting Checklist Mission Info

Method: get_checklist_mission()
Location: excheck_checklist_controller.py:358

Notifications

Controller: ExCheckNotificationController
Notifications are sent as CoT messages to checklist subscribers.

Data Storage

Enterprise Sync Integration

ExCheck uses Enterprise Sync for persistent storage: Templates:
Checklists:
Tasks:

Database Models

The persistence layer tracks:
  • Checklist metadata
  • Task associations
  • Mission-checklist mappings

Cross-Platform Compatibility

WinTAK Adapter

Controller: ExCheckWintakAdapter
Method: standardize_task()
Ensures compatibility between ATAK and WinTAK task formats:
Handles differences in:
  • XML structure
  • Field naming
  • Data formats

Complete Workflow Example

Initialization

On component registration, ExCheck automatically: Method: register()
Location: excheck_facade.py:88

Best Practices

  1. Template Reuse: Create reusable templates for common procedures
  2. Meaningful Names: Use descriptive names for checklists and tasks
  3. Mission Linking: Always link checklists to missions for context
  4. Task Granularity: Break down procedures into discrete, checkable tasks
  5. Notifications: Use notifications to keep team members synchronized
  6. Status Tracking: Regularly retrieve checklist status for monitoring

XML Structure Reference

Checklist XML