Skip to main content
Glama
danroblewis
by danroblewis

get_g1_connection_status

Check connection status and device information for G1 Bluetooth devices using the Nordic UART protocol over BLE. Returns connection state, device details, UART service availability, and message statistics.

Instructions

Get current connection status and device info.

Returns: Dict[str, Any]: JSON response with detailed connection status including: - result: "success" or "error" - connected: Boolean indicating connection state - device_name: Name of connected device (if connected) - device_address: Address of connected device (if connected) - uart_service_available: Boolean indicating UART service availability - tx_characteristic_available: Boolean indicating TX characteristic availability - rx_characteristic_available: Boolean indicating RX characteristic availability - pending_messages_count: Number of pending messages - total_messages: Total message count - error: Error message if status check failed Note: This returns detailed status information including: - Connection state (connected/disconnected) - Device name and address (if connected) - UART service availability - Number of pending messages - Total message count

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The primary handler for the get_g1_connection_status tool. Registered via @server.tool() decorator. Retrieves status from BLE manager and formats the response dictionary with connection details.
    @server.tool() async def get_g1_connection_status() -> Dict[str, Any]: """Get current connection status and device info. Returns: Dict[str, Any]: JSON response with detailed connection status including: - result: "success" or "error" - connected: Boolean indicating connection state - device_name: Name of connected device (if connected) - device_address: Address of connected device (if connected) - uart_service_available: Boolean indicating UART service availability - tx_characteristic_available: Boolean indicating TX characteristic availability - rx_characteristic_available: Boolean indicating RX characteristic availability - pending_messages_count: Number of pending messages - total_messages: Total message count - error: Error message if status check failed Note: This returns detailed status information including: - Connection state (connected/disconnected) - Device name and address (if connected) - UART service availability - Number of pending messages - Total message count """ try: status = ble_manager.get_connection_status() except Exception as e: logger.error(f"Status check failed: {e}") return { "result": "error", "connected": False, "error": f"Status check failed: {str(e)}" } return { "result": "success", "connected": status['connected'], "device_name": status.get('device_name'), "device_address": status.get('device_address'), "uart_service_available": status.get('uart_service_available', False), "tx_characteristic_available": status.get('tx_characteristic_available', False), "rx_characteristic_available": status.get('rx_characteristic_available', False), "pending_messages_count": status.get('pending_messages_count', 0), "total_messages": status.get('total_messages', 0) }
  • Supporting helper method in NordicBLEUARTManager class that provides the detailed connection status data used by the tool handler.
    def get_connection_status(self) -> Dict[str, Any]: """Get current connection status and device info""" connection_duration = None if self.connection_start_time: connection_duration = (datetime.now() - self.connection_start_time).total_seconds() last_activity = None if self.last_activity_time: last_activity = (datetime.now() - self.last_activity_time).total_seconds() return { "connected": self.is_connected, "device_name": self.target_device.name if self.target_device else None, "device_address": self.target_device.address if self.target_device else None, "uart_service_available": self.uart_service is not None, "tx_characteristic_available": self.tx_characteristic is not None, "rx_characteristic_available": self.rx_characteristic is not None, "pending_messages_count": len(self.pending_messages), "total_messages": len(self.communication_log), "connection_duration_seconds": connection_duration, "last_activity_seconds": last_activity, "reconnect_attempts": self.reconnect_attempts, "auto_reconnect_enabled": self.auto_reconnect_enabled }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danroblewis/g1_uart_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server