ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
627354 Топик полностью
symbions (27.10.2015 23:13 - 23:15, просмотров: 140) ответил orgazmator на На примере нашей конторы батник не лучшее решение ввиду неочевидности успешности выполненных операций из-за особенностей консольного вывода. Поэтому делаем ГУИ для консольного приложения, ну а в ГУИ уже можно вывести ясно и доступно результаты
ГУИ. Угу. наблюдал как три инженера пытались в программе к программатору AS разобраться. А лядом лежал батничек для программирования той же лабуды, но через avrreal. В конечном итоге пришлось побыть лесником - отогнал их и запустил батник (вру - ещё программатор пришлось другой подцепить - но он рядом лежал). Само больше бесило, что там рядом оказался и проект к AS2 со всеми фьюзебитами (с чем они мучались), но путь к хеку был немного другой (диск D был указан вместо E). А так правильно написали - анализируй Errorlevel и пиши по русски ошибка или нормально всё. Вот пример для сигналовского микропроцессора
@ECHO OFF
TITLE Программирование 

:START0
SET KeyPress={N}
IF NOT EXIST .\log\MEGADEVICES_09_C8051F352.log GOTO START1
DEL .\log\MEGADEVICES_09_C8051F352.log

:START1
CLS
REM це напишеться кажись голубым
COLOR 07
@ECHO ON
@ECHO Работаем под WINXP. Программирование микроконтроллера начато...
@ECHO OFF

REM XPCOM1-порт .\prog_silabs\FlashUtilCL.exe Download -RE .\hex\MEGADEVICES_09_v00_00_C8051F352.hex 1 1 1 >>.\log\MEGADEVICES_09_C8051F352.log

REM XPCOM2-порт 
.\prog_silabs\FlashUtilCL.exe Download -RE .\hex\MEGADEVICES_09_v00_00_C8051F352.hex 2 1 1 >>.\log\MEGADEVICES_09_C8051F352.log

IF %ERRORLEVEL% == 0 GOTO END4
REM це напишеться красным
COLOR 0C
@ECHO ON
@ECHO Ошибка программирования микроконтроллера. Повторное программирование...
@ECHO OFF
PAUSE
GOTO START1

:END4
REM А це кажись зелэным
COLOR 0B
@ECHO ON
@ECHO Программирование прибора завершено успешно.
@ECHO OFF
PAUSE

SET /P KeyPress=Выйти из режима программирования? Y (а затем Enter) - выйти, Enter - продолжить. 
IF /I {%KeyPress%} == {Y} GOTO ENDALL
IF /I {%KeyPress%} == {Н} GOTO ENDALL
GOTO START0

:ENDALL
Вот если программа не выдаёт Errorlevel - то да, беда. Но это вряд ли - по моему пыонеры уже не пишут консольные программы к программаторам