рднрд╛рдЧ 2. рдЫреБрдкрд╛рдпрд╛ рдЧрдпрд╛ рдХреИрдорд░рд╛ рд░реЛрдЯреЗрд╢рди рдбрд┐рд╡рд╛рдЗрд╕

рдЫрд╡рд┐
рдпрд╣ рд╡реЗрдм рдХреИрдорд░рд╛ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдкрд░ рдореЗрд░реЗ рд▓реЗрдЦ рдХрд╛ рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИ (рдкрд┐рдЫрд▓рд╛ рд▓реЗрдЦ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ )ред

рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛: рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП ATtiny85 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдлрд░реНрдорд╡реЗрдпрд░, рддрд╛рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред

рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рддреИрдпрд╛рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ред ( рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛)ред

рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдлрд░реНрдорд╡реЗрдпрд░

рдирд┐рдпрдВрддреНрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрдорд╛рдВрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдлрд░реНрдорд╡реЗрдпрд░ 1, 3, 4, 5 рдХреЛ рддрд╛рд░реНрдХрд┐рдХ 1 рдпрд╛ 0. рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдХреЛрдИ рдХрдорд╛рдВрдб 2 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рднреА рдЪрд╛рд░ рдкреИрд░ 0 рдкрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд┐рдлрд▓рддрд╛ рди рд╣реЛ рдкреАрд╕реА рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдХрд╛рдо, рдбрд┐рд╡рд╛рдЗрд╕ рдиреЗ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ (AVR Studio4 рдкрд░ рдлрд░реНрдорд╡реЗрдпрд░ рд▓рд┐рдЦрд╛, рдпрд╣ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрддреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдлрд░реНрдорд╡реЗрдпрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк PROTEUS рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
... if(bytesRemaining == 0) //    { //    PORTB if ( pdata.b1 ) //   1   PORTB |= _BV(1); else PORTB &= ~_BV(1); if ( pdata.b2 ) //   3   PORTB |= _BV(3); else PORTB &= ~_BV(3); if ( pdata.b3 ) //   4   PORTB |= _BV(4); else PORTB &= ~_BV(4); if ( pdata.b4 ) //   5   PORTB |= _BV(5); else PORTB &= ~_BV(5); } ... if(i==200) // 1,3,4,5   0  2 { PORTB &= ~_BV(1); PORTB &= ~_BV(3); PORTB &= ~_BV(4); PORTB &= ~_BV(5); } ... 

рдкреИрд░реЛрдВ рдХреА рдХрдореА

Attiny85 рдореЗрдВ рдХреЗрд╡рд▓ 8 рдкреИрд░ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдкрд╛рд╡рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдбреЗрдЯрд╛ рд░реАрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ, рдФрд░ рджреЛ рдФрд░ рдпреВрдПрд╕рдмреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреАрди рдореБрдлреНрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рджреЛ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 4 рдкреИрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЫрд╡рд┐

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: рдкрд╣рд▓реА рдкрд╛рд▓реА рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИ (рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдЖрдк рдирд┐рдпрдВрддреНрд░рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рддрдХ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЧрддрд┐ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ);
рд╕рд╛рдорд╛рдиреНрдп рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд░реАрд╕реЗрдЯ рдкреИрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдлреНрдпреВрдЬ рдмрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред (рдЖрдк рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)
рдореИрдВрдиреЗ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ 0. рдХреЗ рдлрд╝реНрдпреВрдЬрд╝ рдореЗрдВ RSTDISBL рд╕реЗрдЯ рдХрд┐рдпрд╛ (рдЬрдм рд╕рд┐рдирд╛рдкреНрд░реЛрдЧ рдХреЗ рд╕рд╛рде рдлрд╝реНрдпреВрдЬрд╝ рдкрдврд╝рдирд╛, рдПрдХ рддреНрд░реБрдЯрд┐ рдкреЙрдк рдЕрдк рд╣реБрдИред рдореБрдЭреЗ рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛)ред
рдЬрдм рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдлрд╝реНрдпреВрдЬрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдЪрдордХрддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдЙрдЪреНрдЪ-рд╡реЛрд▓реНрдЯреЗрдЬ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдбрдмрд▓-рдЪреЗрдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ usbconfig.h рдореЗрдВред (рд╡реА-рдпреВрдПрд╕рдмреА рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ)
рдЕрд╕рдлрд▓ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдиреЗрдЬрд░" рдореЗрдВ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдУрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЕрдиреНрдпрдерд╛, рдПрдХ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдмрд╛рдж рдХреЗ рд╕рднреА рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпрдХреНрд░рдо

рдореИрдВрдиреЗ рддреИрдпрд╛рд░ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдХреЛрдб рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдХрдорд╛рдВрдб рдмрдирд╛рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд╛рде рд╣реА рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреИрд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП 1 3 4 5. рдореИрдВ рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛ рд▓рд╛рддрд╛ рд╣реВрдВ):

 #define Max 230 class Device{ class dataexchange_t //      { public: char b1; //      4 . char b2; //       PORTB.   char b3; //   (  4  ). char b4; }data; class Position{ public: float x; float y; }positionTransform, cameraPosition; /* positionTransform -          cameraPosition -       */ HIDLibrary <dataexchange_t> hid; //        unsigned char processTime; //        FILE *f; //       int SendData(dataexchange_t *); public: bool Connect(); void SetCameraPosition(short int *, short int *); bool MoveCamera(); bool StopMoveCamera(); Device() { processTime = 10; (int&)data = positionTransform.x = positionTransform.y = 0; f = fopen("CameraPosition.txt","r+"); fscanf(f,"%f %f", &cameraPosition.x, &cameraPosition.y); if(cameraPosition.x < -Max || cameraPosition.y < -Max || cameraPosition.y > Max || cameraPosition.x > Max) cameraPosition.x = cameraPosition.y = 0; } ~Device() { fclose(f); } }; ... 


рдЪреВрдБрдХрд┐ рдореИрдВрдиреЗ рдХреИрдорд░рд╛ рдХреЛ 360 рдбрд┐рдЧреНрд░реА рдШреБрдорд╛рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╢реБрд░реВ рд╕реЗ рд╣реА 230 рдбрд┐рдЧреНрд░реА рдХреА рд╕реАрдорд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рдерд╛, рдпрд╛рдиреА рдХреИрдорд░рд╛ рд╢реБрд░реВ рд╕реЗ рд╣реА рдмрд╛рдПрдБ (230 рдбрд┐рдЧреНрд░реА) рдФрд░ рджрд╛рдПрдБ (-230 рдбрд┐рдЧреНрд░реА) 230 рдбрд┐рдЧреНрд░реА рдШреВрдорддрд╛ рд░рд╣рд╛ред (рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реАрдорд╛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕рдорд╛рдзрд╛рди рд╣реИ, рдпрд╛рдВрддреНрд░рд┐рдХ рд╕реНрд╡рд┐рдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдЬреЛ рдореЛрдЯрд░ рдкрд╛рд╡рд░ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛)ред

рдореИрдВрдиреЗ рдХреИрдорд░реЗ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордиреНрд╡рдп рдЕрдХреНрд╖ рднреА рдкреЗрд╢ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рд╕рд╛рде рдУрдПрд╕ рдХреЛ рдмреЛрдЭ рди рдХрд░рдирд╛ рдкрдбрд╝реЗред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХреИрдорд░рд╛ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рддрдиреЗ рдбрд┐рдЧреНрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджрд░реНрдЬ рдХреА рдЧрдИ рдбрд┐рдЧреНрд░рд┐рдпрд╛рдВ рдХрдИ рдХрдорд╛рдВрдбреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ 2 рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
 ... //       (    2) if(*x > 0) positionTransform.x = (*x * 0.20832); //         else positionTransform.x = (*x * 0.225); //       (    2) if(*y > 0) positionTransform.y = (*y * 0.20832); else positionTransform.y = (*y * 0.225); ... 


рдбрд┐рд╡рд╛рдЗрд╕ рдкрд╣рд▓реЗ рдХреИрдорд░реЗ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдШреБрдорд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ, рддрд╛рдХрд┐ рдПрдХ рд╕рд╛рде рджреЛ рдЗрдВрдЬрдиреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддреЗ рд╕рдордп рдпреВрдПрд╕рдмреА рдкреЛрд░реНрдЯ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рди рдбрд╛рд▓реЗрдВред

рдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЗрдВрдЬрди рдбреНрд░рд╛рдЗрд╡рд░ (рдореИрдВрдиреЗ L293 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛) рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╡реАрдбрд┐рдпреЛ рдФрд░ рдСрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рдг

рдореБрдЭреЗ рдХреИрдорд░реЗ рд╕реЗ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рджреВрд░ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореБрдЭреЗ Skype API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ (рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ Skype API рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдмрдЧреНрд╕ рд╣реИрдВ)ред Skype API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Skype 4 OS рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕ рдбрд┐рд╕реНрдХ рдкрд░ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдБ OS рд╕реНрдерд╛рдкрд┐рдд рд╣реИред

рд╕реНрдХрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЪреИрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ - рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдореЗрд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪреИрдЯ рдореЗрдВ рдХреИрдорд░рд╛ рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯ рдХрдорд╛рдВрдб (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдорд╛рдВрдб "0000") рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡реАрдбрд┐рдпреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪреИрдЯ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдХреЗ рдХреИрдорд░реЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

"StopMove MoveTo ('X' @ 'Y') рд╡реАрдбрд┐рдпреЛрдСрди рд╡реАрдбрд┐рдпреЛрдСрдлрд╝ Wait'TimeInSec 'ред" (Skype рд╡реАрдбрд┐рдпреЛрдСрдлрд╝ рдХрдорд╛рдВрдб рдкрд░ рдХреИрдорд░рд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░ рджреЗрдЧрд╛, рдпрджрд┐ рдореИрдиреБрдЕрд▓ рдореЛрдб рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд╣рд▓реЗ рдЪрд╛рд▓реВ рд╣реИ, рддреЛ рдпрд╣ рдХрдорд╛рдВрдб рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):

 ... char comandName[] = {"###"}; //   char comandStart[] = {"0000"}; //   int timeWait = 500; //     //  COM  CoInitialize(NULL); //  Skype  SKYPE4COMLib::ISkypePtr pSkype(__uuidof(SKYPE4COMLib::Skype)); //   Skype API pSkype->Attach(6,VARIANT_TRUE); _bstr_t comand; IChatMessagePtr curMessage, privMessage = NULL; COleDateTime startTime(time(NULL)); for(;;)//      { curMessage = pSkype->GetMessages((_bstr_t)comandName)->GetItem(1); //      comand = curMessage->GetBody(); //    if(!strcmp((char*)comand,comandStart) && (privMessage == NULL || privMessage->GetId() != curMessage->GetId()) && (startTime.m_dt < curMessage->GetTimestamp())) { privMessage = curMessage; curMessage->PutSeen(true); //      ControlDevice(pSkype, comandName, timeWait, privMessage); } else Sleep(5000); } ... _bstr_t comand; IChatMessagePtr curMessage; int timeToSendMessage = (timeWait/100)*80; Device device; ICallPtr call; //  (  ,   ) for(int i = pSkype->GetActiveCalls()->GetCount(); i != 0 ; i--) { call = pSkype->GetActiveCalls()->GetItem(i); //    if(!strcmp((char*)(call->GetPartnerHandle()),comandName)) { call->Finish(); //   Sleep(2000); break; } } call = pSkype->PlaceCall(_bstr_t(comandName), L"", L"", L""); //   pSkype->SendMessage(_bstr_t(comandName), _bstr_t(L"'╤Ф ")); if(!device.Connect()) //    pSkype->SendMessage(_bstr_t(comandName), _bstr_t(L"╤Ц ╤Ц  ╤Ц")); for(int i = 0;i < timeWait && call->Status != clsInProgress;i++) //     Sleep(20); if(call->Status == clsInProgress) { Sleep(2000); call->StartVideoSend(); //  (  ) for(int time = 0; call->Status == clsInProgress;time++) { if(time >= timeWait) //     -   { call->Finish(); break; } curMessage = pSkype->GetMessages((_bstr_t)comandName)->GetItem(1); if(curMessage->GetId() != privMessage->GetId()) //     { privMessage = curMessage; if(time > 0) time = 0; if(!ComandToDevice((char*)curMessage->GetBody(),&device,pSkype,comandName,&time,call))//     pSkype->SendMessage(_bstr_t(comandName), _bstr_t(L"  ")); curMessage->PutSeen(true); } Sleep(200); if(!device.MoveCamera()) { pSkype->SendMessage(_bstr_t(comandName), _bstr_t(L"  ╤Ф ╤Ц")); device.StopMoveCamera(); } if(timeToSendMessage == time) pSkype->SendMessage(_bstr_t(comandName), _bstr_t(L" ╤Ц  ╤Ф")); } } pSkype->SendMessage(_bstr_t(comandName), _bstr_t(L"'╤Ф ")); } ... 

рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рджрд░реНрд╢рдиред



рдкреВрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

Source: https://habr.com/ru/post/In215841/


All Articles