Интерфейс для простенькой программы на С++

  • Автор темы STUDENb
  • Дата начала
S

STUDENb

Гость
#1
Добрый день. В С++ я профан; но жизнь заставляет:

Общая картина такая:

устройство управляется через микроконтроллер с самодельной прошивкой,
контроллер «управляется» программой на ПК, при запуске которой;
открывается командная строка DOS’овская; программа (писаная на C++)
управляется из DOS нажатиями клавиш “a”, “s”, “d” и т. п. всего 9 команд.

Мне необходимо разработать интерфейс,
для начала тупо с кнопочками, на которые нажимая мышкой я буду "управлять" программой.

Я пробовал... рисовал интерфейс в Visual С++ 2010,
но дальше нарисованной формы дело не заходило.
Теперь необходимо понять, что мне стоит изучать,
дабы реализовать поставленную задачу


После общения с парой специалистов возник вопрос:
стоит ли мне дальше долбить Visual С++
или стоит рыть в направление других программных продуктов (каких)?

буду рад любым советам, спасибо ;)
 

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#2
управляется из DOS нажатиями клавиш ”a”, ”s”, ”d” и т. п. всего 9 команд.
для начала тупо с кнопочками, на которые нажимая мышкой я буду "управлять" программой.
Для начала - нужно узнать что за устройство и каким образом оно подключено(в какой разьем). А потом загуглить что-то в духе
Как писать в LPT (USB,COM) порт на C++.
Ну и конечно, надо знать _что_ отправлять в этот самый порт.

Или второй вариант -> запускать ваше досовское приложение перехватывать его STDOUT, и посылать ему в STDIN нужные буковки. Большими буквами выделены ключевые слова для, опять же, гугла=)
 
S

STUDENb

Гость
#3
спасибо! ща буду копаться :(

...

vital
или создавать процесс и передавать буковки в параметрах запуска.
ИМХО он так и собирается делать, но вот формочку нарисовал и как сделать так чтобы они работали не знает.
угу :)

* прога глотает буквы таким образом:
C++:
while(1){
while(kbhit()){
unsigned char c=getch();
unsigned char com[2]={0,0};

if(c==27){
exit_as_far_as_pos=true;
break;//return 0;//Exit
}else if(controller_opened){
printf("%c",c);//Show symbol...
if((c=='S')||(c=='s')){//Start
com[0]='S';CS.send(com,1);
}else if((c=='F')||(c=='f')){//Finish
com[0]='F';CS.send(com,1);//return 0;
}else if((c=='W')||(c=='w')){//Write parameters
com[0]='W';CS.send(com,1);
CS.send(param_bufer,256);
}else if((c=='R')||(c=='r')){
com[0]='R';CS.send(com,1);
int i=0,to=256;
unsigned int gn=0;
while(to>0){
CS.receive(&recieve_bufer[i],to,gn);
i+=gn;to-=gn;
}
bool all_right=true;
for(int i=0;i<256;i++){
if(recieve_bufer[i]!=param_bufer[i])all_right=false;
}
printf((all_right)?"Good Data :)\n":"Error in data :(\n");
}
}
}
if(exit_as_far_as_pos)break;