Live demo — data resets daily at 03:00 UTC. Nothing you enter is saved. Server UI →

Logs and Events

Overview

The Log view displays system messages, hardware events, debug information, and error notifications. This is essential for troubleshooting issues, monitoring system health, and understanding hardware behavior.

Accessing Logs

  1. Click Log in the navigation panel
  2. Log view displays all recent messages
  3. Auto-scrolls to newest messages (configurable)

Log Message Types

Message Categories

Information:

  • Normal operational messages
  • System status updates
  • Connection established/closed
  • Module loaded/unloaded

Warnings:

  • Non-critical issues
  • Performance degradation
  • Configuration oddities
  • Deprecated feature usage

Errors:

  • Operation failures
  • Communication errors
  • Hardware faults
  • Exception messages

Debug:

  • Detailed diagnostic information
  • Internal state information
  • Development/troubleshooting data

Message Sources

Application:

  • Accordion Pilot operations
  • UI events
  • User actions

Hardware:

  • Device notifications
  • Telemetry events
  • Channel value changes
  • Configuration changes

Communication:

  • Network events
  • Protocol errors
  • Timeout messages

Modules:

  • Module loading/unloading
  • Module errors
  • Custom module messages

Log View Interface

Log Grid

Columns:

Column Description
Timestamp Date and time of message
Level Info, Warning, Error, Debug
Source Origin of message (App, Hardware, Module)
Category Message category
Message Log message text
Details Additional information (expandable)

Color Coding

Messages color-coded by severity:

  • Blue/Black: Information
  • Yellow: Warning
  • Red: Error
  • Gray: Debug

Auto-Scroll

Enable/Disable Auto-Scroll:

  • Checkbox in toolbar
  • Or button to toggle

Behavior:

  • Enabled: Log automatically scrolls to newest message
  • Disabled: Stay at current position for reading

Use Cases:

  • Enable: Real-time monitoring
  • Disable: Review past messages

Log Filtering

Filter by Level

Show specific severity levels:

  1. Click level filter dropdown

  2. Check/uncheck levels:

    • ☑ Information
    • ☑ Warning
    • ☑ Error
    • ☐ Debug (often disabled by default)
  3. Only selected levels shown

Example:

Show only Warnings and Errors for troubleshooting

Filter by Source

Show messages from specific source:

  1. Click source filter
  2. Select sources:
    • Application
    • Hardware
    • Communication
    • Modules
    • Specific module names

Filter by Text

Search for specific content:

  1. Enter search text in filter box
  2. Log filters to show only matching messages
  3. Case-insensitive search
  4. Supports partial matching

Example:

Filter: "I2C"           → Shows all I2C-related messages
Filter: "timeout"       → Shows timeout errors
Filter: "PMBus"         → Shows PMBus module messages

Time Range Filter

Show messages in specific time period:

  1. Set start time
  2. Set end time
  3. Apply filter
  4. Only messages in range shown

Log Management

Clear Log

Remove all log messages:

  1. Click "Clear Log" button
  2. Or right-click log → "Clear All"
  3. Confirm if prompted
  4. New messages continue to appear

Use Cases:

  • Start fresh before test
  • Remove old noise
  • Focus on new events

Export Log

Save log to file:

  1. Right-click log area
  2. Select "Export to File"
  3. Choose format:
    • Text (.txt)
    • CSV (.csv)
    • Excel (.xlsx) if supported
  4. Select filename
  5. Click Save

Exported Log Format (CSV):

Timestamp,Level,Source,Message,Details
2024-01-15 14:30:00,Info,Application,Connected to 192.168.1.100,
2024-01-15 14:30:05,Warning,Hardware,Channel polling slow,Poll took 150ms
2024-01-15 14:30:10,Error,Communication,I2C NACK,Address 0x3C

Use Cases:

  • Archive troubleshooting sessions
  • Share with support team
  • Analyze trends
  • Documentation

Log Retention

Automatic log limit:

  • Log maintains recent messages (configurable)
  • Oldest messages removed automatically
  • Default: Keep last 1000-5000 messages
  • Prevents memory issues

Configure Limit:

  • Settings → Log Settings → Max Messages

Event Monitoring

Notification Events

Hardware notifications:

When notifications enabled (init --notification):

  • Information messages from hardware
  • Warning conditions
  • Error states
  • Status changes

Example Messages:

[Info] Module loaded: PMBusController
[Warning] Temperature high: 75°C
[Error] I2C communication timeout on bus 0

Telemetry Events

Hardware telemetry:

When telemetry enabled (init --telemetry):

  • Configuration changes
  • Value updates (if logged)
  • Request/response logging
  • State transitions

Example Messages:

[Telemetry] Channel CH_GPIO_01 direction changed to Output
[Telemetry] I2C transaction: Address 0x48, Read 2 bytes
[Telemetry] Module parameter updated: SampleRate = 1000

Enable/Disable Events

Configure event reception:

Via init command:

# Enable notifications only
AccordionShell init --host 192.168.1.100 --notification

# Enable telemetry only
AccordionShell init --host 192.168.1.100 --telemetry

# Enable both
AccordionShell init --host 192.168.1.100 --notification --telemetry

# Disable both (default)
AccordionShell init --host 192.168.1.100

Impact:

  • Notifications: Important events, minimal traffic
  • Telemetry: Detailed events, higher traffic
  • Both: Complete visibility, highest traffic

Common Log Workflows

Troubleshoot Connection Issues

1. Clear log
2. Attempt connection
3. Watch for error messages
4. Look for:
   - "Connection refused" → Service not running
   - "Timeout" → Network issue or wrong IP
   - "Authentication failed" → Credentials problem
5. Export log if needed for support

Debug I2C Communication

1. Enable telemetry (if not already):
   AccordionShell init --host 192.168.1.100 --telemetry
   
2. Filter log: "I2C"

3. Perform I2C operation

4. Watch for:
   - Transaction messages
   - NACK errors
   - Timeout errors
   
5. Analyze pattern:
   - Repeated NACKs → Wrong address or device not responding
   - Timeouts → Bus hung or clock issue
   - Successful then fail → Intermittent issue

Monitor Module Loading

1. Filter Source: Modules

2. Load module:
   AccordionShell module --module "MyModule" --file "config.xml"
   
3. Watch for:
   - [Info] Module loaded: MyModule
   - [Info] Channels registered: 15
   - Or [Error] Module load failed: ...
   
4. Check for warnings about configuration

Capture Error for Support

1. Clear log

2. Reproduce issue

3. Export log immediately:
   Right-click → Export to File
   
4. Save with descriptive name:
   "error_i2c_timeout_20240115.txt"
   
5. Include in support ticket

Debug Mode

Enable Debug Messages

Show detailed debug information:

Debug messages typically disabled by default (too verbose).

Enable:

  • Application settings → Enable Debug Logging
  • Or environment variable / command-line flag

Debug messages include:

  • Internal state changes
  • Detailed protocol information
  • Performance metrics
  • Memory allocation events

⚠️ Warning: Debug mode generates significant log traffic. Use only when troubleshooting.

Log Analysis

Identify Patterns

Look for recurring messages:

  • Repeated errors indicate systematic issue
  • Periodic warnings may indicate timing issue
  • Consistent error codes point to specific problem

Example:

[Error] I2C NACK at address 0x3C - Repeated 100 times
→ Device at 0x3C not responding or wrong address

Correlate with Actions

Match log messages to user actions:

  1. Note timestamp of action (or use marker)
  2. Find corresponding log messages
  3. Verify expected vs. actual behavior

Example:

14:30:00 - User: Set VOUT_1 = 3.3V
14:30:00 - [Telemetry] Set channel VOUT_1 to value 3.3
14:30:00 - [Info] I2C Write: Address 0x40, Data: 02 CD
14:30:01 - [Info] Voltage readback: 3.295V
→ Successful, slight difference within tolerance

Error Codes

Some messages include error codes:

[Error] Communication error: E_TIMEOUT (0x80070005)

Look up error codes:

  • Accordion documentation
  • System error code references
  • Contact support with error code

Troubleshooting Logs

Log Not Updating

Problem: No new messages appearing

Solutions:

  1. Verify connection to device
  2. Check if application frozen
  3. Verify log not filtered too aggressively
  4. Check log retention limit not reached
  5. Try clearing log

Too Many Messages

Problem: Log fills too quickly

Solutions:

  1. Disable debug messages
  2. Disable telemetry if not needed
  3. Filter to show only warnings/errors
  4. Increase log retention limit
  5. Export and clear periodically

Missing Expected Messages

Problem: Expected log message doesn't appear

Solutions:

  1. Check message level filter (enable all)
  2. Verify notifications/telemetry enabled
  3. Check source filter
  4. Verify operation actually occurred
  5. Check device communication working

Best Practices

  1. Review Logs Regularly: Check for warnings/errors periodically
  2. Clear Before Tests: Start with clean log for clarity
  3. Export Important Sessions: Save logs showing errors for analysis
  4. Use Filters: Focus on relevant messages
  5. Enable Telemetry Wisely: Only when needed for debugging
  6. Document Error Patterns: Note recurring issues
  7. Include in Tickets: Always export log when reporting issues

See Also

Help Menu Setup

Overview

The Help Menu provides quick access to important documentation and support resources.

SetupHelpMenu Method

Purpose:

  • Initialize and populate the Help menu

Where to Call:

  • Call SetupHelpMenu() in the constructor or FormMain_Load method.

Menu Structure:

  • 📖 Getting Started - ap-index.md
  • 📊 Channels - ap-channels.md
  • 🔍 Logs and Events - ap-logs.md
  • 🔌 Bus Transactions - ap-transactions.md
  • ⚡ Power Supplies - ap-power-supplies.md
  • 📈 Charts - ap-charts.md
  • 🔧 System Settings - ap-system-settings.md
  • ❓ Troubleshooting - ap-troubleshooting.md

Example Code

// Add to constructor or FormMain_Load:
SetupHelpMenu();

private void SetupHelpMenu()
{
    var helpTopics = new[]
    {
        ("📖 Getting Started", "ap-index.md"),
        ("📊 Channels", "ap-channels.md"),
        ("🔍 Logs and Events", "ap-logs.md"),
        ("🔌 Bus Transactions", "ap-transactions.md"),
        ("⚡ Power Supplies", "ap-power-supplies.md"),
        ("📈 Charts", "ap-charts.md"),
        ("🔧 System Settings", "ap-system-settings.md"),
        ("❓ Troubleshooting", "ap-troubleshooting.md")
    };

    foreach (var (title, file) in helpTopics)
    {
        var menuItem = new BarButtonItem
        {
            Caption = title,
            Tag = file
        };
        
        menuItem.ItemClick += (s, e) =>
        {
            var fileName = (string)((BarButtonItem)s).Tag;
            ShowHelpDocument(fileName);
        };
        
        popupMenuHelp.ItemLinks.Add(menuItem);
    }
}
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.