Subversion Repositories HomeAutomation

Rev

Rev 2159 | Rev 2164 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 2159 Rev 2161
Line 77... Line 77...
77
print "Hardware id: " . $hwid . "\n";
77
print "Hardware id: " . $hwid . "\n";
78
print "Atom address: " . $hostname . ":" . $port . "\n";
78
print "Atom address: " . $hostname . ":" . $port . "\n";
79
print "Hexfile: " . $filename . "\n";
79
print "Hexfile: " . $filename . "\n";
80
#print "Parameters: " . "\n";
80
#print "Parameters: " . "\n";
81
 
81
 
-
 
82
############################## RESET ##############################
82
if ($reset eq "true" && $filename eq "")
83
if ($reset eq "true" && $filename eq "")
83
{
84
{
84
    if ($port == 1203)
85
    if ($port == 1203)
85
    {
86
    {
86
        $socket = atomd_initialize($hostname, $port);
87
        $socket = atomd_initialize($hostname, $port);
87
        atomjs_write($socket, "Node_ResetNative('".$hwid."');\n");
88
        atomjs_write($socket, "Node_ResetNative('".$hwid."');\n");
88
        print atomjs_read_line($socket);
89
        $response = atomjs_read_line($socket);
-
 
90
        if ($response =~ m/Error/)
-
 
91
        {
-
 
92
            die $response;
-
 
93
        }
-
 
94
        print $response;
-
 
95
 
89
        $success = 0;
96
        $success = 0;
90
        for ($count = 0; $count < 15; $count++)
97
        for ($count = 0; $count < 15; $count++)
91
        {
98
        {
92
            atomjs_write($socket, "Node_ResetPollNative();\n");
99
            atomjs_write($socket, "Node_ResetPollNative();\n");
93
            if (atomjs_read_line($socket) =~ m/true/)
100
            if (atomjs_read_line($socket) =~ m/true/)
94
            {
101
            {
95
                print "\033[32m" . $hwid . " started okay.\033[0m\n";
102
                print "\033[32m" . $hwid . " started okay.\033[0m\n";
96
                $success = 1;
103
                $success = 1;
97
                last;
104
                last;
98
            }
-
 
99
            usleep(200000);
-
 
100
        }
-
 
101
        if ($success == 0)
-
 
102
        {
-
 
103
            print "\033[31mTimed out waiting for reset.\033[0m\n";
-
 
104
        }
-
 
105
    }
105
            }
-
 
106
            usleep(200000);
106
    else
107
        }
-
 
108
        if ($success == 0)
107
    {
109
        {
-
 
110
            print "\033[31mTimed out waiting for reset.\033[0m\n";
-
 
111
        }
-
 
112
    }
-
 
113
    else
-
 
114
    {
108
        $socket = atomd_initialize($hostname, $port);
115
        $socket = atomd_initialize($hostname, $port);
109
 
116
 
110
        usleep(100000);
117
        usleep(100000);
111
        atomd_kill_promt($socket);
118
        atomd_kill_promt($socket);
112
        atomd_send_command($socket, "Node_Reset $hwid");
119
        atomd_send_command($socket, "Node_Reset $hwid");
113
        print atomd_read_command_response($socket);
120
        print atomd_read_command_response($socket);
114
        #my $result = system("atomic -s $hostname -p $port -c \"Node_Reset $hwid\"");
121
        #my $result = system("atomic -s $hostname -p $port -c \"Node_Reset $hwid\"");
115
        #exit($result);
122
        #exit($result);
116
    }
123
    }
117
}
124
}
-
 
125
############################## REPROGRAM ##############################
118
else
126
else
119
{
127
{
120
    if ($port == 1203)
128
    if ($port == 1203)
121
    {
129
    {
122
        open (FP, "+<".$filename) or die "Error: Cannot open file $filename\n";
130
        open (FP, "+<".$filename) or die "Error: Cannot open file $filename\n";
123
        @filecontents = <FP>;
131
        @filecontents = <FP>;
124
        close FP;
132
        close FP;
125
        $socket = atomd_initialize($hostname, $port);
133
        $socket = atomd_initialize($hostname, $port);
126
        atomjs_write($socket, "Node_ClearHex();\n");
134
        atomjs_write($socket, "Node_ClearHex();\n");
Line 131... Line 139...
131
            $filerow =~ s/^\s+//;
139
            $filerow =~ s/^\s+//;
132
            $filerow =~ s/\s+$//;
140
            $filerow =~ s/\s+$//;
133
            $linenums += 1;
141
            $linenums += 1;
134
            $command = "Node_AppendHexNative('".$filerow."');\n";
142
            $command = "Node_AppendHexNative('".$filerow."');\n";
135
            atomjs_write($socket, $command);
143
            atomjs_write($socket, $command);
136
            atomjs_read_line($socket);
144
            $response = atomjs_read_line($socket);
-
 
145
            if ($response =~ m/Error/)
-
 
146
            {
-
 
147
                die $response;
-
 
148
            }
137
        }
149
        }
138
        $command = "Node_ProgramNative('".$hwid."', '".$bios."', '".$linenums."');\n";
150
        $command = "Node_ProgramNative('".$hwid."', '".$bios."', '".$linenums."');\n";
139
        atomjs_write($socket, $command);
151
        atomjs_write($socket, $command);
140
        #print $command;
152
        #print $command;
141
        print atomjs_read_line($socket);
153
        $response = atomjs_read_line($socket);
-
 
154
        if ($response =~ m/Error/)
-
 
155
        {
-
 
156
            die $response;
-
 
157
        }
-
 
158
        print $response;
142
atomd_disconnect($socket);
159
#atomd_disconnect($socket);
143
#       $success = 0;
160
        $success = 0;
144
#       for ($count = 0; $count < 150; $count++)
161
        for ($count = 0; $count < 150; $count++)
145
#       {
162
        {
146
#           atomjs_write($socket, "Node_ProgramPollNative();\n");
163
            atomjs_write($socket, "Node_ProgramPollNative();\n");
147
#           if (atomjs_read_line($socket) =~ m/true/)
164
            if (atomjs_read_line($socket) =~ m/true/)
148
#           {
165
            {
149
#               print "\033[32m" . $hwid . " started okay.\033[0m\n";
166
                print "\033[32m" . $hwid . " started okay.\033[0m\n";
150
#               $success = 1;
167
                $success = 1;
151
#               last;
168
                last;
152
#           }
169
            }
153
#           usleep(200000);
170
            usleep(200000);
154
#       }
171
        }
155
#       if ($success == 0)
172
        if ($success == 0)
156
#       {
173
        {
157
#           print "\033[31mTimed out waiting for program to finish.\033[0m\n";
174
            print "\033[31mTimed out waiting for program to finish.\033[0m\n";
158
#       }
175
        }
159
    }
176
    }
160
    else
177
    else
161
    {
178
    {
162
        open (FP, "+<".$filename) or die "Error: Cannot open file $filename\n";
179
        open (FP, "+<".$filename) or die "Error: Cannot open file $filename\n";
163
        @filecontents = <FP>;
180
        @filecontents = <FP>;