18,7 → 18,7 |
* http://shark.sssup.it |
*/ |
|
/* CVS : $Id: bca.c,v 1.8 2006-07-03 15:10:15 tullio Exp $ */ |
/* CVS : $Id: bca.c,v 1.9 2006-07-03 15:29:11 tullio Exp $ */ |
|
/* |
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it> |
76,94 → 76,118 |
#include <drivers/shark_fb26.h> |
#include <drivers/shark_keyb26.h> |
|
// *** Librerie Standard C *** |
// *** Standard C library *** |
#include <stdlib.h> |
// *** Librerie FAB *** |
|
// *** FAB library *** |
#include "fab_lib/fab_msg.h" |
#include "fab_lib/fab_show.h" |
#include "fab_lib/fab_tool.h" |
#include "fab_lib/fab_grx.h" |
// *** Librerie BCA *** |
|
// *** BCA library *** |
#include "bca.h" |
|
void end_fun(KEY_EVT* k) |
{ sys_shutdown_message("Ending...\n"); |
exit(0); |
void end_fun(KEY_EVT* k) { |
sys_shutdown_message("Ending...\n"); |
exit(0); |
} |
void incrementa_aerei_fun(KEY_EVT* k) |
{ if (aereo_count<AEREO_N_MAX) aereo_count++; |
|
void inc_planes(KEY_EVT* k) { |
if (aereo_count < AEREO_N_MAX) aereo_count++; |
} |
void decrementa_aerei_fun(KEY_EVT* k) |
{ if (aereo_count>AEREO_N_MIN) aereo_count--; |
|
void dec_planes(KEY_EVT* k) { |
if (aereo_count > AEREO_N_MIN) aereo_count--; |
} |
void incrementa_cannoni_fun(KEY_EVT* k) |
{ if (cannone_count<CANNONE_N_MAX) cannone_count++; |
|
void inc_cannon(KEY_EVT* k) { |
if (cannone_count < CANNONE_N_MAX) cannone_count++; |
} |
void decrementa_cannoni_fun(KEY_EVT* k) |
{ if (cannone_count>CANNONE_N_MIN) cannone_count--; |
|
void dec_cannon(KEY_EVT* k) { |
if (cannone_count > CANNONE_N_MIN) cannone_count--; |
} |
|
int main(int argc, char **argv) |
{ |
PID pid; |
int main(int argc, char **argv) { |
PID pid_dummy_radar, pid_aereo_creator, pid_cannone_creator, pid_control; |
|
KEY_EVT k; |
KEY_EVT k; |
|
k.flag = CNTL_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
k.status = KEY_PRESSED; |
keyb_hook(k,end_fun,FALSE); |
k.flag = CNTL_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
k.status = KEY_PRESSED; |
keyb_hook(k, end_fun, FALSE); |
|
k.flag = CNTR_BIT; |
k.status = KEY_PRESSED; |
keyb_hook(k,end_fun,FALSE); |
k.flag = 0; |
k.scan = KEY_1; |
k.ascii = '1'; |
k.status = KEY_PRESSED; |
keyb_hook(k,incrementa_aerei_fun,FALSE); |
k.flag = 0; |
k.scan = KEY_2; |
k.ascii = '2'; |
k.status = KEY_PRESSED; |
keyb_hook(k,decrementa_aerei_fun,FALSE); |
k.flag = 0; |
k.scan = KEY_3; |
k.ascii = '3'; |
k.status = KEY_PRESSED; |
keyb_hook(k,incrementa_cannoni_fun,FALSE); |
k.flag = 0; |
k.scan = KEY_4; |
k.ascii = '4'; |
k.status = KEY_PRESSED; |
keyb_hook(k,decrementa_cannoni_fun,FALSE); |
k.flag = CNTR_BIT; |
k.status = KEY_PRESSED; |
keyb_hook(k, end_fun, FALSE); |
|
k.flag = 0; |
k.scan = KEY_1; |
k.ascii = '1'; |
k.status = KEY_PRESSED; |
keyb_hook(k, inc_planes, FALSE); |
|
k.flag = 0; |
k.scan = KEY_2; |
k.ascii = '2'; |
k.status = KEY_PRESSED; |
keyb_hook(k, dec_planes, FALSE); |
|
k.flag = 0; |
k.scan = KEY_3; |
k.ascii = '3'; |
k.status = KEY_PRESSED; |
keyb_hook(k, inc_cannon, FALSE); |
|
k.flag = 0; |
k.scan = KEY_4; |
k.ascii = '4'; |
k.status = KEY_PRESSED; |
keyb_hook(k, dec_cannon, FALSE); |
|
/* inizializza il mutex grafico */ |
app_mutex_init(&grx_mutex); |
/* inizializza il mutex grafico */ |
app_mutex_init(&grx_mutex); |
|
scenario(); |
scenario(); |
|
//---init--- |
srand(sys_gettime(NULL)); |
aereo_count = AEREO_N_MIN; |
cannone_count = CANNONE_N_MIN; |
//---init--- |
srand(sys_gettime(NULL)); |
aereo_count = AEREO_N_MIN; |
cannone_count = CANNONE_N_MIN; |
|
pid=crea_soft_dummy_radar(); |
task_activate(pid); |
pid_dummy_radar = crea_soft_dummy_radar(); |
if (pid_dummy_radar == -1) { |
sys_shutdown_message("bca.c(main): could not create task <dummy_radar>"); |
exit(1); |
} |
task_activate(pid_dummy_radar); |
|
pid=crea_soft_aereo_creator(); |
task_activate(pid); |
pid_aereo_creator = crea_soft_aereo_creator(); |
if (pid_aereo_creator == -1) { |
sys_shutdown_message("bca.c(main): could not create task <aereo_creator>"); |
exit(1); |
} |
task_activate(pid_aereo_creator); |
|
pid=crea_soft_cannone_creator(); |
task_activate(pid); |
pid_cannone_creator = crea_soft_cannone_creator(); |
if (pid_cannone_creator == -1) { |
sys_shutdown_message("bca.c(main): could not create task <cannone_creator>"); |
exit(1); |
} |
task_activate(pid_cannone_creator); |
|
pid=crea_soft_control(); |
task_activate(pid); |
//---------- |
pid_control = crea_soft_control(); |
if (pid_control == -1) { |
sys_shutdown_message("bca.c(main): could not create task <control>"); |
exit(1); |
} |
task_activate(pid_control); |
//---------- |
|
return 0; |
|
return 0; |
} |
|
|