]> git.donarmstrong.com Git - kiibohd-controller.git/commitdiff
Adding connection type list
authorJacob Alexander <haata@kiibohd.com>
Sat, 25 Jul 2015 21:54:36 +0000 (14:54 -0700)
committerJacob Alexander <haata@kiibohd.com>
Sat, 25 Jul 2015 21:54:36 +0000 (14:54 -0700)
Scan/UARTConnect/connect_scan.c
Scan/UARTConnect/connect_scan.h

index fea798a2cef8a0d8f6973543d3a1914c93f0fd23..dd6980e446961cd55498dbd8c15131b5e8f23e74 100644 (file)
@@ -188,6 +188,7 @@ case uartNum: \
 // CLI Functions
 void cliFunc_connectCmd ( char *args );
 void cliFunc_connectIdl ( char *args );
+void cliFunc_connectLst ( char *args );
 void cliFunc_connectMst ( char *args );
 void cliFunc_connectRst ( char *args );
 void cliFunc_connectSts ( char *args );
@@ -199,12 +200,14 @@ void cliFunc_connectSts ( char *args );
 // Connect Module command dictionary
 CLIDict_Entry( connectCmd,  "Sends a command via UART Connect, first arg is which uart, next arg is the command, rest are the arguments." );
 CLIDict_Entry( connectIdl,  "Sends N number of Idle commands, 2 is the default value, and should be sufficient in most cases." );
+CLIDict_Entry( connectLst,  "Lists available UARTConnect commands and index id" );
 CLIDict_Entry( connectMst,  "Sets the device as master. Use argument of s to set as slave." );
 CLIDict_Entry( connectRst,  "Resets both Rx and Tx connect buffers and state variables." );
 CLIDict_Entry( connectSts,  "UARTConnect status." );
 CLIDict_Def( uartConnectCLIDict, "UARTConnect Module Commands" ) = {
        CLIDict_Item( connectCmd ),
        CLIDict_Item( connectIdl ),
+       CLIDict_Item( connectLst ),
        CLIDict_Item( connectMst ),
        CLIDict_Item( connectRst ),
        CLIDict_Item( connectSts ),
@@ -885,6 +888,20 @@ void cliFunc_connectCmd( char* args )
                break;
        }
        case Animation:
+               break;
+
+       case RemoteCapability:
+               // TODO
+               break;
+
+       case RemoteOutput:
+               // TODO
+               break;
+
+       case RemoteInput:
+               // TODO
+               break;
+
        default:
                break;
        }
@@ -909,6 +926,31 @@ void cliFunc_connectIdl( char* args )
        Connect_send_Idle( count );
 }
 
+void cliFunc_connectLst( char* args )
+{
+       const char *Command_strs[] = {
+               "CableCheck",
+               "IdRequest",
+               "IdEnumeration",
+               "IdReport",
+               "ScanCode",
+               "Animation",
+               "RemoteCapability",
+               "RemoteOutput",
+               "RemoteInput",
+       };
+
+       print( NL );
+       info_msg("List of UARTConnect commands");
+       for ( uint8_t cmd = 0; cmd < Command_TOP; cmd++ )
+       {
+               print( NL );
+               printInt8( cmd );
+               print(" - ");
+               dPrint( (char*)Command_strs[ cmd ] );
+       }
+}
+
 void cliFunc_connectMst( char* args )
 {
        // Parse number from argument
@@ -944,7 +986,8 @@ void cliFunc_connectRst( char* args )
        info_msg("Resetting UARTConnect state...");
        Connect_reset();
 
-       // TODO - Argument for re-sync
+       // Reset node id
+       Connect_id = 0xFF;
 }
 
 void cliFunc_connectSts( char* args )
index 492f4b145b875fe7c9a65555edeaacbba4590de8..c2daca580ebbbf3af96bee894f450d0446a8c3a1 100644 (file)
 
 // Functions
 typedef enum Command {
-       CableCheck    = 0, // Comm check
-       IdRequest     = 1, // Slave initialization (request id from master)
-       IdEnumeration = 2, // Slave initialization (begin enumeration from master)
-       IdReport      = 3, // Slave initialization complete, report id to master
-       ScanCode      = 4, // ScanCode event status change
-       Animation     = 5, // Master trigger animation event (same command is sent back to master when ready)
+       CableCheck,       // Comm check
+
+       IdRequest,        // Slave initialization (request id from master)
+       IdEnumeration,    // Slave initialization (begin enumeration from master)
+       IdReport,         // Slave initialization complete, report id to master
+
+       ScanCode,         // ScanCode event status change
+       Animation,        // Master trigger animation event (same command is sent back to master when ready)
+
+       RemoteCapability, // Activate a capability on the given node
+       RemoteOutput,     // Remote debug output from a given node
+       RemoteInput,      // Remote command to send to a given node's debug cli
+
+       Command_TOP,      // Enum bounds
 } Command;
 
 // UART Rx/Tx Status
@@ -71,7 +79,6 @@ typedef struct IdRequestCommand {
 
 // Id Enumeration Command
 // Issued by the master whenever an Id Request is received
-// XXX Future work may include an "external capabilities" list in this command
 typedef struct IdEnumerationCommand {
        Command command;
        uint8_t id;
@@ -79,7 +86,6 @@ typedef struct IdEnumerationCommand {
 
 // Id Report Command
 // Issued by each slave to the master when assigned an Id
-// XXX Future work will include an "external capabilities" list in this command
 typedef struct IdReportCommand {
        Command command;
        uint8_t id;
@@ -109,6 +115,37 @@ typedef struct AnimationCommand {
        uint8_t firstParam[0];
 } AnimationCommand;
 
+// Remote Capability Command
+// Initiated by the master to trigger a capability on a given node
+// RemoteOutput is enabled while capability is activated
+typedef struct RemoteCapabilityCommand {
+       Command command;
+       uint8_t id;
+       Capability capability;
+       uint8_t numArgs;
+       uint8_t firstArg[0];
+} RemoteCapabilityCommand;
+
+// Remote Output Command
+// Sends debug output to the master node
+// Uses print command redirection to generate each command message
+typedef struct RemoteOutputCommand {
+       Command command;
+       uint8_t id;
+       uint8_t length;
+       uint8_t firstChar[0];
+} RemoteOutputCommand;
+
+// Remote Input Command
+// Sends debug input to given node (usually from master)
+// Uses debug cli to execute command and sends all output using Remote Output Command
+typedef struct RemoteInputCommand {
+       Command command;
+       uint8_t id;
+       uint8_t length;
+       uint8_t firstChar[0];
+} RemoteInputCommand;
+
 
 
 // ----- Functions -----