Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЕ_САУ_КМО.doc
Скачиваний:
13
Добавлен:
06.11.2018
Размер:
918.02 Кб
Скачать

20. Файл moddv3.H. Автопилот.

[1] /*########################################################*/

[2] /*

[3] Copyright (C) 2008 by A.E.Stefanovich tel. 236-2729, 268-3916

[4] Moscow State University of the Instrumentation and Informatics

[5] MGUPI

[6] Chair Information Maintenance of Systems Robototechnical and Mechatronic

[7] IS 5

[8] */

[9] /*########################################################*/

[10] /*

[11] File: MODDV3.h with BLACK CASE.

[12] AUTOPILOTE

[13] */

[14] /*################################################ LEGEND */

[15] /*

[16] ----------------

[17] Student: L.V. Doronina

[18] Group: IS 5-94-02 (d)

[19] Code: 94505

[20] ----------------

[21] Discipline: Programming (3403)

[22] Specialty: 2204.01

[23] Teacher: A.E. Stefanovich

[24] ---------------

[25] Year: 2008

[26] */

[27] /*########################################################*/

[28] /*============================= Declarations */

[29] int Dev3_pct(int kx,int ky); /* Picture */

[30] int Dev3_log(int kx,int ky); /* Logic */

[31] int Dev3_bc(); /*Black Case */

[32] /*###################################### SUB_PROGRAMMS */

[33] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[34] int Dev3_pct(int kx,int ky) /* Picture */

[35] {

[36] int dx=kx*COL_DRAFT_DEV;

[37] int dy=ky*ROW_DRAFT_DEV;

[38] int x0=dx/2;

[39] int y0=dy/2;

[40] int a=7;

[41] int r=dy/2-30;

[42] int c_exe;

[43] /*---- Viewport */

[44] clearviewport();

[45] /****************************** Compas */

[46] /*---- NW-S0, NO-SW */

[47] setcolor(LIGHTCYAN);

[48] line(x0+(-r/1.41),y0+(r/1.41),x0+(r/1.41),y0+(-r/1.41));

[49] line(x0+(-r/1.41),y0+(-r/1.41),x0+(r/1.41),y0+(r/1.41));

[50] /*---- N, E, S, O */

[51] setcolor(WHITE);

[52] /*---- Nord */

[53] line((x0-a),(y0-a),(x0),(y0-r));

[54] line((x0+a),(y0-a),(x0),(y0-r));

[55] /*---- Est */

[56] line((x0+a),(y0-a),(x0+r),(y0));

[57] line((x0+a),(y0+a),(x0+r),(y0));

[58] /*---- Sud */

[59] line((x0+a),(y0+a),(x0),(y0+r));

[60] line((x0-a),(y0+a),(x0),(y0+r));

[61] /*---- West */

[62] line((x0-a),(y0+a),(x0-r),(y0));

[63] line((x0-a),(y0-a),(x0-r),(y0));

[64] /*---- Circle */

[65] setcolor(LIGHTBLUE);

[66] circle(x0,y0,r);

[67] /*---- Center circle */

[68] setcolor(WHITE);

[69] ellipse

[70] (dx/2,dy/2,0,360,6,6);

[71] setfillstyle(SOLID_FILL,YELLOW);

[72] floodfill(x0,y0,WHITE);

[73] /*----*/

[74] setfillstyle(SOLID_FILL,BLUE);

[75] floodfill(x0-10,y0,WHITE);

[76] /*---- N, O, S, W */

[77] settextstyle(SMALL_FONT,HORIZ_DIR,6);

[78] /* setusercharsize(3,2,3,1); */

[79] setcolor(WHITE);

[80] settextjustify(CENTER_TEXT,BOTTOM_TEXT);

[81] outtextxy(x0,y0-r-3," N ");

[82] settextjustify(LEFT_TEXT,CENTER_TEXT);

[83] outtextxy(x0+r-3,y0-3," O ");

[84] settextjustify(CENTER_TEXT,TOP_TEXT);

[85] outtextxy(x0,y0+r," S ");

[86] settextjustify(RIGHT_TEXT,CENTER_TEXT);

[87] outtextxy(x0-r+3,y0," W ");

[88] /*---- N0, NW, SO, SW */

[89] settextstyle(SMALL_FONT,HORIZ_DIR,4);

[90] /* setusercharsize(3,2,3,1); */

[91] setcolor(CYAN);

[92] settextjustify(RIGHT_TEXT,CENTER_TEXT);

[93] outtextxy(x0+(-r/1.41),y0+(-r/1.41)," NW ");

[94] settextjustify(LEFT_TEXT,CENTER_TEXT);

[95] outtextxy(x0+(r/1.41),y0+(-r/1.41)," NO ");

[96] settextjustify(RIGHT_TEXT,TOP_TEXT);

[97] outtextxy(x0+(-r/1.41),y0+(r/1.41)," SW ");

[98] settextjustify(LEFT_TEXT,CENTER_TEXT);

[99] outtextxy(x0+(r/1.41),y0+(r/1.41)," SO ");

[100] /****************************** Logic */

[101] c_exe=(C2*4+C1*2+C0*1);

[102] setcolor(YELLOW

[103] );

[104] setlinestyle(SOLID_LINE,0,THICK_WIDTH);

[105] r=r-10;

[106] /*---- Cours 0 */

[107] if(c_exe==0)

[108] {

[109] moveto(x0,y0);

[110] linerel(0,-r);

[111] }

[112] /*---- Cours 45 */

[113] if(c_exe==1)

[114] {

[115] moveto(x0,y0);

[116] linerel(r/1.41,-r/1.41);

[117] }

[118] /*---- Cours 90 */

[119] if(c_exe==2)

[120] {

[121] moveto(x0,y0);

[122] linerel(r,0);

[123] }

[124] /*---- Cours 135 */

[125] if(c_exe==3)

[126] {

[127] moveto(x0,y0);

[128] linerel(r/1.41,r/1.41);

[129] }

[130] /*---- Cours 180 */

[131] if(c_exe==4)

[132] {

[133] moveto(x0,y0);

[134] linerel(0,r);

[135] }

[136] /*---- Cours 225 */

[137] if(c_exe==5)

[138] {

[139] moveto(x0,y0);

[140] linerel(-r/1.41,r/1.41);

[141] }

[142] /*---- Cours 270 */

[143] if(c_exe==6)

[144] {

[145] moveto(x0,y0);

[146] linerel(-r,0);

[147] }

[148] /*---- Cours 315 */

[149] if(c_exe==7)

[150] {

[151] moveto(x0,y0);

[152] linerel(-r/1.41,-r/1.41);

[153] }

[154] /*----*/

[155] return 0;

[156] }

[157] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[158] int Dev3_log(int kx,int ky) /* Logic */

[159] {

[160] int dx=kx*COL_DRAFT_DEV;

[161] int dy=ky*ROW_DRAFT_DEV;

[162] int x=dx/2,y=dy-5;

[163] /*---- Text */

[164] setcolor(RED);

[165] setbkcolor(BLACK);

[166] settextstyle(SMALL_FONT,HORIZ_DIR,5);

[167] settextjustify(CENTER_TEXT,CENTER_TEXT);

[168] outtextxy(x,y," Logic of Device_3 is not displaied ");

[169] return 0;

[170] }

[171] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[172] int Dev3_bc() /*Black Case */

[173] {

[174] /*---- Variables */

[175] extern int Flag_ini;

[176] /*----*/

[177] if(Flag_ini==NOT_INI)

[178] {/*--------------------Beguin block NOT_INI */

[179] /*---- Openfile BLACK CASE */

[180] if((FpBC_3=fopen("BLACKcs3","w"))==NULL)

[181] {

[182] ALERT_SIGNAL;

[183] perror("Filure openfile BLACKcs3 "); STOP;

[184] exit(EXIT_FAILURE);

[185] }

[186] /*---- Date, File entry, File exit */

[187] Get_date_pc_counted();

[188] fprintf(FpBC_3,"%s\n",Str_date_pc_counted);

[189] fprintf(FpBC_3,"File entry: %s\n",Fname_entry);

[190] fprintf(FpBC_3,"File exit: BLACKcs3\n");

[191] /*---- Regime */

[192] if(Regime_work[0]=='0')

[193] fprintf(FpBC_3,

[194] "REGIME: 0.\nEXIT\n");

[195] if(Regime_work[0]=='1')

[196] fprintf(FpBC_3,

[197] "EGIME: 1.\nHand Command\n");

[198] if(Regime_work[0]=='2')

[199] fprintf(FpBC_3,

[200] "REGIME: 2.\nHand Time - Hand Command\n");

[201] if(Regime_work[0]=='3')

[202] fprintf(FpBC_3,

[203] "REGIME: 3.\nCommands file. \n Hand Interval const.\n");

[204] if(Regime_work[0]=='4')

[205] fprintf(FpBC_3,

[206] "REGIME: 4.\nCommands file with Intervals variable.\n");

[207] if(Regime_work[0]=='5')

[208] fprintf(FpBC_3,

[209] "REGIME: 5.\nCommands file with Times.\n");

[210] if(Regime_work[0]=='6')

[211] fprintf(FpBC_3,

[212] "REGIME: 6.\nStep by step.\n");

[213] fprintf(FpBC_3,

[214] "###############################################\n");

[215] }/*--------------------End block NOT_INI */

[216] /*==============================*/

[217] if(Flag_ini==YES_INI)

[218] {/*--------------------Beguin block YES_INI */

[219] /*---- Counter com.,H,M,S, ADDRESS, COMMAND */

[220] fprintf(FpBC_3,

[221] "- COUNTER - Hour - Min - Sec - Address - Commands -\n");

[222] fprintf(FpBC_3,

[223] "Counter_commands---,H,M,S\n");

[224] fprintf(FpBC_3,

[225] "%ld---%1d:%1d:%1d\n",

[226] Counter_commands,H,M,S);

[227] /**/

[228] fprintf(FpBC_3,

[229] "A2,A1,A0---,C2,C1,C0\n");

[230] fprintf(FpBC_3,

[231] "%1d%1d%1d---%1d%1d%1d\n",

[232] A2,A1,A0,C2,C1,C0);

[233] /**/

[234] fprintf(FpBC_3,

[235] "AI2,AI1,AI0---,CI2,CI1,CI0\n");

[236] fprintf(FpBC_3,

[237] "%1d%1d%1d---%1d%1d%1d\n",

[238] AI2,AI1,AI0,CI2,CI1,CI0);

[239] fprintf(FpBC_3,

[240] "###############################################\n");

[241] }/*--------------------End block YES_INI */

[242] /*----*/

[243] return 0;

[244] }

[245] /*########################################################*/

* * *

ПРИЛОЖЕНИЕ 1.

ТИТУЛЬНЫЙ ЛИСТ ПРОГРАММЫ.

ПРИЛОЖЕНИЕ 2.

ИНДИКАЦИЯ НАЧАЛА РАБОТЫ ПРОГРАММЫ.

ПРИМЕЧАНИЕ: Окно FILE.OUT в этом варианте не используется. Все результаты работы САУ записываются по принципу "черного ящика" в автоматически открывающиеся выходные файлы BLACKCS0.c – BLACKCS7.c.

ПРИЛОЖЕНИЕ 3.

ИНДИКАЦИЯ РАБОТЫ УСТРОЙСТВА LVD-1.

ПРИМЕЧАНИЕ: Окно FILE.OUT в этом варианте не используется. Все результаты работы САУ записываются по принципу "черного ящика" в автоматически открывающиеся выходные файлы BLACKCS0.c – BLACKCS7.c.

ПРИЛОЖЕНИЕ 4.

ИНДИКАЦИЯ РАБОТЫ УСТРОЙСТВА LVD-2.

ПРИМЕЧАНИЕ: Окно FILE.OUT в этом варианте не используется. Все результаты работы САУ записываются по принципу "черного ящика" в автоматически открывающиеся выходные файлы BLACKCS0.c – BLACKCS7.c.

ПРИЛОЖЕНИЕ 5.

ИНДИКАЦИЯ РАБОТЫ УСТРОЙСТВА МУЗЫКАЛЬНЫЙ ЦЕНТР.

ПРИМЕЧАНИЕ: Окно FILE.OUT в этом варианте не используется. Все результаты работы САУ записываются по принципу "черного ящика" в автоматически открывающиеся выходные файлы BLACKCS0.c – BLACKCS7.c.

ПРИЛОЖЕНИЕ 6.

ИНДИКАЦИЯ РАБОТЫ УСТРОЙСТВА АВТОПИЛОТ.

ПРИМЕЧАНИЕ: Окно FILE.OUT в этом варианте не используется. Все результаты работы САУ записываются по принципу "черного ящика" в автоматически открывающиеся выходные файлы BLACKCS0.c – BLACKCS7.c.

ЛИТЕРАТУРА.

  1. Подбельский В.В., Фомин С.С. Программирование на языке Си - М: Финансы и статистика, 2000.

  2. Керниган Б., Ритчи Д. Язык программирования Си / Пер. с англ. - М.: Финансы и статистика, 1992.

  3. Болски М.И. Язык программирования Си / Пер. с англ. Справочник. - М.: Радио и связь, 1988.

  4. Прата С. Язык Си / Пер. с англ. - М., С.Пб., Киев :Изд. Дом Вильямс, 2006.

  5. Белецкий Я. Энциклопедия языка Си / Пер. с англ. - М.:Мир, 1992.

  6. Джехани Н. Программирование на языке Си. / Пер. с англ. Справочник. - М.: Радио и связь, 1988.

  7. Уинер Р. Язык Турбо Си / Пер. с англ. - М.:Мир, 1991.

  8. Левкин Г.Н., Левкина В.Е. ДЕМО ТУРБО СИ - М: ПРОК, 1992.

  9. Бошкин А.В., Дубнер П.Н. Работа в Турбо СИ – М: ЮКИС, 1991.

  10. Б.П. Прокофьев, Н.Н. Сухарев, Ю.Е. Храмов Графические средства Турбо С и Турбо С++ - М: Финансы и статистика, 1992.

  11. Шилдт Г. Полный справочник по С, 4-е издание/ Пер. с англ. – М, С-Пб, Киев: Издательский дом Вильямс, 2002.

  12. Трой Д. Программирование на языке Си для персонального компьютера IBM PC/ Пер. с англ. – М: Радио и связь, 1991.

  13. Касаткин А.И., Вальвачев А.Н. От Turbo C к Borland C++ Справочное пособие – Минск: Вышэйшая школа, 1992

  14. Касаткин А.И. Управление ресурсами Справочное пособие – Минск: Вышэйшая школа, 1992.

  15. Касаткин А.И. Системное программирование Справочное пособие – Минск: Вышэйшая школа, 1993.

  16. Евтеев В.В., Махонько А.М., Юзбашьянц Основы информатики и вычислительной техники, Методические рекомендации – М: Государственная Академия Управления им. С. Орджоникидзе, Учебный центр довузовской подготовки АЗЪ, 1987.

  17. Чернов Е.А. Проектирование станочной электроавтоматики – М: Машиностроение, 1989.

  18. Березин Б.И., Березин С.Б. Начальный курс С и С++ - М: ДИАЛОГ-МИФИ, 2003.

  19. Стефанович А.Е. Программный имитатор электронных схем (ПИЭС). Учебно-методическое пособие по дисциплине “Программирование и основы алгоритмизации” – М: МГАПИ, 2005.

  20. Стефанович А.Е. Программный автоматизированный имитатор электронных схем (ПАИЭС). Учебно-методическое пособие по дисциплине “Программирование и основы алгоритмизации” – М: МГАПИ, 2005.