- •1. Предисловие.
- •2. Основные сведения, необходимые для создания программ на языке си.
- •3. Основные правила при работе с программами, написанными на языке cи.
- •4. Программная имитация системы автоматического управления.
- •5. Режимы работы системы автоматического управления.
- •6. Отображение параметров процесса управления.
- •7. Перечень и назначение подпрограмм системы автоматического управления.
- •8. Порядок разработки системы автоматического управления на основе образца.
- •9. Файлы входные режимов работы nn 3, 4, 5, 6.
- •Файл blackcs1.C. Регистрация процесса управления мо lvd-1.
- •Файл blackcs2.C. Регистрация процесса управления мо lvd-2.
- •Файл blackcs3.C. Регистрация процесса управления мо Автопилот.
- •11. Файл scont.C. Исходный текст программы scont.
- •12. Файл sys_cnst.H. Глобальные константы программы scont.C.
- •13. Файл sys_var.H. Глобальные переменные программы scont.C.
- •14. Файл sys_mus.H. Музыкальные подпрограммы программы scont.C.
- •15. Файл sys_prim.H. Графические примитивы программы scont.C.
- •16. Файл sys_dv0.H. Программная заглушка программы scont.C.
- •17. Файл moddv0.H. Музыкальный центр.
- •18. Файл moddv1.H. Электронная схема lvd-1.
- •19. Файл moddv2.H. Электронная схема lvd-2.
- •20. Файл moddv3.H. Автопилот.
- •Содержание.
15. Файл sys_prim.H. Графические примитивы программы scont.C.
[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: SYS_PRIM.h
[12] GRAPHIC PRIMITIVES
[13] */
[14] /*########################################################*/
[15] /*============================= Declarations */
[16] /*---- Elements and devices */
[17] int E
[18] (char *t,int n,int lx,int ly,int dx,int dy,int kx,int ky);
[19] int B
[20] (char *t,int n,int lx,int ly,int dx,int dy,int kx,int ky);
[21] /*---- Primitives */
[22] int RectangleN
[23] (int left_x,int left_y,int right_x,int right_y,int n);
[24] int Rectangle2
[25] (int left_x,int left_y,int right_x,int right_y);
[26] int EllipseN
[27] (int x, int y,int stangle,int endangle,
[28] int x_radius,int y_radius,int n);
[29] int Ellipse2
[30] (int x, int y,int stangle,int endangle,
[31] int x_radius,int y_radius);
[32] /*####################################### SUB_PROGRAMMS */
[33] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[34] int E
[35] (char *t,int n,int lx,int ly,int dim_x,int dim_y,
[36] int kx,int ky)
[37] {
[38] /*---- Variable */
[39] char buf_str[80];
[40] /*---- Device */
[41] settextstyle(SMALL_FONT,HORIZ_DIR,4);
[42] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[43] setcolor(LIGHTGRAY);
[44] if(dim_x<3) dim_x=3;
[45] if(dim_y<3) dim_y=3;
[46] RectangleN(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky,2);
[47] setcolor(YELLOW);
[48] settextjustify(RIGHT_TEXT,CENTER_TEXT);
[49] outtextxy((lx+dim_x-1)*kx,(ly+1)*ky,t);
[50] setcolor(WHITE);
[51] itoa(n,buf_str,10);
[52] settextjustify(LEFT_TEXT,CENTER_TEXT);
[53] outtextxy((lx+1)*kx,(ly+dim_y-1)*ky,buf_str);
[54] /*----*/
[55] return 0;
[56] }
[57] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[58] int B
[59] (char *t,int n,int lx,int ly,int dim_x,int dim_y,
[60] int kx,int ky)
[61] {
[62] /*---- Variable */
[63] char buf_str[80];
[64] /*---- Device */
[65] settextstyle(SMALL_FONT,HORIZ_DIR,4);
[66] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[67] setfillstyle(SOLID_FILL,LIGHTGRAY);
[68] if(dim_x<3) dim_x=3;
[69] if(dim_y<3) dim_y=3;
[70] bar(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky);
[71] setcolor(YELLOW);
[72] rectangle(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky);
[73] settextjustify(RIGHT_TEXT,CENTER_TEXT);
[74] outtextxy((lx+dim_x-1)*kx,(ly+1)*ky,t);
[75] setcolor(WHITE);
[76] itoa(n,buf_str,10);
[77] settextjustify(LEFT_TEXT,CENTER_TEXT);
[78] outtextxy((lx+1)*kx,(ly+dim_y-1)*ky,buf_str);
[79] /*----*/
[80] return 0;
[81] }
[82] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[83] int RectangleN
[84] (int left_x,int left_y,int right_x,int right_y,int n)
[85] {
[86] int i;
[87] for(i=0;i<n;i++)
[88] {
[89] rectangle
[90] (left_x+i,left_y+i,right_x-i,right_y-i);
[91] if((left_x+i)>=(right_x-i)) break;
[92] if((left_y+i)>=(right_y-i)) break;
[93] }
[94] /*----*/
[95] return 0;
[96] }
[97] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[98] int Rectangle2
[99] (int left_x,int left_y,int right_x,int right_y)
[100] {
[101] rectangle
[102] (left_x,left_y,right_x,right_y);
[103] rectangle
[104] (left_x+2,left_y+2,right_x-2,right_y-2);
[105] /*----*/
[106] return 0;
[107] }
[108] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[109] int EllipseN
[110] (int x, int y,int stangle,int endangle,
[111] int x_radius,int y_radius,int n)
[112] {
[113] int i;
[114] for(i=0;i<n;i++)
[115] {
[116] ellipse
[117] (x,y,stangle,endangle,x_radius-i,y_radius-i);
[118] if(x_radius<=0) break;
[119] if(y_radius<=0) break;
[120] }
[121] /*----*/
[122] return 0;
[123] }
[124] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[125] int Ellipse2
[126] (int x, int y,int stangle,int endangle,
[127] int x_radius,int y_radius)
[128] {
[129] ellipse
[130] (x,y,stangle,endangle,x_radius,y_radius);
[131] ellipse
[132] (x,y,stangle,endangle,x_radius-2,y_radius-2);
[133] /*----*/
[134] return 0;
[135] }
[136] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[137]
[138] /*########################################################*/
* * *