Subversion Repositories HomeAutomation

Rev

Rev 1665 | Rev 1669 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1.  
  2. Node_ResetNodeId = null;
  3. Node_ResetClientId = null;
  4.  
  5. Node_ProgramNodeId = null;
  6. Node_ProgramClientId = null;
  7.  
  8. function Node_OnChange(node_id, available)
  9. {
  10.     if (node_id == Node_ResetNodeId && available)
  11.     {
  12.         Console_LogToClient(Node_ResetClientId, "\033[32m" + Node_ResetNodeId + " started okay.\033[0m\n");
  13.         Node_ResetNodeId = null;
  14.         Node_ResetClientId = null;
  15.         Console_SetDefaultPrompt();
  16.     }
  17.    
  18.     if (node_id == Node_ProgramNodeId && available)
  19.     {
  20.         Console_LogToClient(Node_ProgramClientId, "\033[32m" + Node_ProgramNodeId + " started okay.\033[0m\n");
  21.         Node_ProgramNodeId = null;
  22.         Node_ProgramClientId = null;
  23.         Console_SetDefaultPrompt();
  24.     }
  25. }
  26.  
  27. function Node_GetAvailableIds()
  28. {
  29.     var result_list = [];
  30.     var available_nodes = NodeExport_GetAvailableNodes();
  31.    
  32.     for (var n in available_nodes)
  33.     {
  34.         var id_parts = available_nodes[n].split(",", 2);
  35.        
  36.         result_list.push(id_parts[0]);
  37.     }
  38.    
  39.     return result_list;
  40. }
  41.  
  42. function Node_ListAvailable()
  43. {
  44.     var available_nodes = NodeExport_GetAvailableNodes();
  45.    
  46.     var lines = [["Id", "Modules"]];
  47.    
  48.     for (var n in available_nodes)
  49.     {
  50.         var parts = available_nodes[n].split(",");
  51.         var id = parts.shift();
  52.         var modules = "<none>";
  53.        
  54.         if (parts.length > 0)
  55.         {
  56.             modules = parts.join(", ");
  57.         }
  58.        
  59.         lines.push([id, modules]);
  60.     }
  61.    
  62.     var table_lines = create_table(lines);
  63.    
  64.     Log("\033[29;1m" + table_lines[0] + "\033[0m\n");
  65.    
  66.     for (var n = 1; n < table_lines.length; n++)
  67.     {
  68.         Log(table_lines[n] + "\n");
  69.     }
  70.    
  71.     return true;
  72. }
  73. Console_RegisterCommand(Node_ListAvailable);
  74.  
  75. function Node_Reset(node_id)
  76. {
  77.     if (arguments.length < 1)
  78.     {
  79.         Log("\033[31mNot enough parameters given.\033[0m\n");
  80.         return false;
  81.     }
  82.    
  83.     Log("Sending reset to " + node_id + "...\n");
  84.    
  85.     if (!NodeExport_ResetNode(node_id))
  86.     {
  87.         Log("\033[31mFailed to send reset.\033[0m\n");
  88.         return false;
  89.     }
  90.    
  91.     Node_ProgramClientId = Console_GetClientId();
  92.     Node_ProgramNodeId = node_id;
  93.     Console_PreventDefaultPrompt();
  94.  
  95.     return true;
  96. }
  97. Console_RegisterCommand(Node_Reset, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Node_GetAvailableIds()); });
  98.  
  99. function Node_Program(node_id, bios, filename)
  100. {
  101.     if (arguments.length < 3)
  102.     {
  103.         Log("\033[31mNot enough parameters given.\033[0m\n");
  104.         return false;
  105.     }
  106.    
  107.     Log("Initiating programming of " + node_id + "...\n");
  108.    
  109.     if (!NodeExport_ProgramNode(node_id, bios > 0, filename))
  110.     {
  111.         Log("\033[31mFailed to start programming.\033[0m\n");
  112.         return false;
  113.     }
  114.    
  115.     Node_ResetClientId = Console_GetClientId();
  116.     Node_ResetNodeId = node_id;
  117.     Console_PreventDefaultPrompt();
  118.    
  119.     return true;
  120. }
  121. Console_RegisterCommand(Node_Program, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Node_GetAvailableIds(), [0, 1]); });
  122.  
  123. function Node_GetInformation(node_id)
  124. {
  125.     if (arguments.length < 1)
  126.     {
  127.         Log("\033[31mNot enough parameters given.\033[0m\n");
  128.         return false;
  129.     }
  130.    
  131.     var result = NodeExport_GetNodeInformation(node_id);
  132.    
  133.     if (!result)
  134.     {
  135.         Log("\033[31mNo node with id " + node_id + " found.\033[0m\n");
  136.         return false;
  137.     }
  138.    
  139.     var date = new Date(result["LastActive"] * 1000);
  140.    
  141.     Log("Id: " + result["Id"] + "\n");
  142.     Log("Valid: " + result["Valid"] + "\n");
  143.     Log("BiosVersion: " + result["BiosVersion"] + "\n");
  144.     Log("DeviceType: " + result["DeviceType"] + "\n");
  145.     Log("HasApplication: " + result["HasApplication"] + "\n");
  146.     Log("LastActive: " + date.toString() + "\n");
  147.    
  148.     return true;
  149. }
  150. Console_RegisterCommand(Node_GetInformation, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Node_GetAvailableIds()); });
  151.