ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контроля Ρ€ΠΎΠ±ΠΎΡ‚Π°

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· «Spin Box», связанных с ΡΠ΅Ρ€Π²ΠΎΠΌΠΎΡ‚ΠΎΡ€Π°ΠΌΠΈ запускаСтся функция on_spinServoX_valuechanged (), которая выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ: являСтся Π»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ элСмСнт spinCurrAction, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π»ΠΈ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ установки Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для сСрвомоторов. Если Ρ€Π΅ΠΆΠΈΠΌ установка Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контроля Ρ€ΠΎΠ±ΠΎΡ‚Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π”Π°Π»Π΅Π΅ описаны этапы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контроля Ρ€ΠΎΠ±ΠΎΡ‚Π°. ВрСбования ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±Ρ‹Π»ΠΈ описаны Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ рассмотрим сам процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ встроСнных возмоТностСй срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ QT Creator Π±Ρ‹Π» создан интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ПослС Ρ‡Π΅Π³ΠΎ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° внутрСнняя Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, созданы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, послС Ρ‡Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ созданиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ самого Ρ€ΠΎΠ±ΠΎΡ‚Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Для Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊΠ°ΠΊ «Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ дСйствиС», «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ дСйствиС», «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ двиТСния», «Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ двиТСния», «Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ значСния», «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ значСния», «Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ двиТСния» Π±Ρ‹Π»ΠΈ созданы ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ элСмСнта «Push Button» дизайнСрского Ρ€Π΅ΠΆΠΈΠΌΠ° QT Creator.

Кнопки Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ для Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ для упрощСния взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ контроля ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ стандартная ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удовлСтворяСт трСбованиям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅ΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ описаниС, ΠΏΡ€ΠΈ нСобходимости ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π² Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Π° Π²ΡΠ΅, Ρ‡Ρ‚ΠΎ трСбуСтся для запуска Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΌΡ‹ΡˆΠΊΠΎΠΉ.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠΎΠ»Π΅ΠΉ для Π²Π²ΠΎΠ΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ сСрвомоторов ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ послС двиТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ дСйствия, Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ элСмСнты «Spin Box», ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ значСния, ΠΏΡ€ΠΈ нСобходимости ограничивая ΠΈΡ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π°Π½Π΅Π΅. Π’Π°ΠΊΠΆΠ΅, этот элСмСнт содСрТит ΠΊΠ½ΠΎΠΏΠΊΠΈ для управлСния ΠΈΠΌ ΠΎΠ΄Π½ΠΎΠΉ лишь ΠΌΡ‹ΡˆΡŒΡŽ, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±Π΅Π· ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. ВсС элСмСнты Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Ρ‹Π»ΠΈ подписаны ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта QT Creator — «Label». Он ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ тСкстовыС вставки Π² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Для управлСния состояниями свСтодиодов Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ элСмСнты «Check Box», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… состояний: «Π²ΠΊΠ»ΡŽΡ‡Π΅Π½» ΠΈΠ»ΠΈ «Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½». Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΡΠΎΡΡ‚ояниС «Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½», Ρ‡Ρ‚ΠΎ позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΈΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ возмоТности ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ привСсти ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, Π½ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… элСмСнтах, Ρ‚Π΅ΠΌ самым ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ удобство ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ интСрфСйса.

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла — Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΠ½ΠΈ Π·Π°ΠΉΠΌΡƒΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ пространства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ слоТно ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ свСтодиод Π½Π° ΡΠ°ΠΌΠΎΠΌ Ρ€ΠΎΠ±ΠΎΡ‚Π΅ ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π΅ΠΌΡƒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, поэтому элСмСнты ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŽ состояния свСтодиодов Π±Ρ‹Π»ΠΈ сгруппированы ΠΏΠΎ ΠΈΡ… ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π° Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹: «Π ΠΎΡ‚», «Π›Π΅Π²Π°Ρ Π±Ρ€ΠΎΠ²ΡŒ» ΠΈ «ΠŸΡ€Π°Π²Π°Ρ Π±Ρ€ΠΎΠ²ΡŒ», Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ располоТСны Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт контроля Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ располагался соотвСтствСнно Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π° Π³ΠΎΠ»ΠΎΠ²Π΅ Ρ€ΠΎΠ±ΠΎΡ‚Π°.

Для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ вся Π³Ρ€ΡƒΠΏΠΏΠ° элСмСнтов Π±Ρ‹Π»Π° подписана ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ элСмСнта «Group Box», Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ объСдинСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов Π² ΠΎΠ΄Π½Ρƒ Π³Ρ€ΡƒΠΏΠΏΡƒ.

ΠžΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ элСмСнт интСрфСйса — ΠΏΠΎΠ»Π΅ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ€ΠΎΠ±ΠΎΡ‚, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ элСмСнта «Combo Box», Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². Помимо этого, «Label» Π±Ρ‹Π» использован для отобраТСния количСства ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΠ»Π½Ρ‹ΠΉ интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 32.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ нСпосрСдствСнно ΠΊ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ всС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ actionArrY ΠΈ Π΄Π²Π° Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… массива — arr [] [] ΠΈ arr_led [] [].

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контроля.

Рис. 32. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контроля

ΠŸΠ΅Ρ€Π²Π°Ρ являСтся цСлочислСнной Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ число Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ записаны Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. ЦСлочислСнный массив arr [] [] нСсСт Π² ΡΠ΅Π±Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвомотора, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, arr [i] [j] содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ j-сСрвомотора Π² i-Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, arr [i] [17] содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅ послС i-двиТСния. Массив bool arr_led [] [] Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΡΠΎΡΡ‚оянии свСтодиодов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли arr_led [i] [j] содСрТит «true», состояниС j-свСтодиода i-двиТСния — «Π²ΠΊΠ»ΡŽΡ‡Π΅Π½» .

ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· «Spin Box», связанных с ΡΠ΅Ρ€Π²ΠΎΠΌΠΎΡ‚ΠΎΡ€Π°ΠΌΠΈ запускаСтся функция on_spinServoX_valuechanged (), которая выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ: являСтся Π»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ элСмСнт spinCurrAction, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π»ΠΈ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ установки Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для сСрвомоторов. Если Ρ€Π΅ΠΆΠΈΠΌ установка Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Ρ‚ΠΎ Ρ„ункция измСняСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΌΡƒ сСрвоприводу ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ двиТСнию элСмСнт массива arr [] [], Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС мСняСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ arr_def [], ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… полоТСниях сСрвомоторов. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° постоянно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, установлСнноС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ двиТСния.

ИзмСнСниС значСния «Spin Box», связанного с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ послС двиТСния, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_spinDelay_valueChanged (), Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ² arr [i-1] [17], Π³Π΄Π΅ i ΡΠΎΠΎΡ‚вСтствуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ spinCurrAction. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° постоянно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, установлСнноС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ двиТСния.

ИзмСнСниС состояния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· «Check Box», ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΡΠ²Π΅Ρ‚ΠΎΠ΄ΠΈΠΎΠ΄ΠΎΠ² Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_checkBoxX_stateChanged (), которая сохраняСт Π½ΠΎΠ²ΠΎΠ΅ состояниС Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ arr_led [i-1] [j], Π³Π΄Π΅ i ΡΠΎΠΎΡ‚вСтствуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ spinCurrAction, Π° j — Π½ΠΎΠΌΠ΅Ρ€Ρƒ свСтодиода, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ связан Π΄Π°Π½Π½Ρ‹ΠΉ «Check Box» .

ИзмСнСниС значСния «Spin Box», связанного с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ дСйствия Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_spinCurrAction_valueChanged (), которая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ сравнСниС Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния с actionArrY. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ actionArrY, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° устанавливаСт Π½Π° Π²ΡΠ΅Ρ… «Spin Box», ΠΊΡ€ΠΎΠΌΠ΅ spinCurrAction, Π° Ρ‚Π°ΠΊΠΆΠ΅ всСх «Check Box» ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния, взятыС ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² arr [i-1] [] ΠΈ arr_led [i-1] [], Π³Π΄Π΅ i ΡΠΎΠΎΡ‚вСтствуСт Π½ΠΎΠ²ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ spinCurrAction. Если Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС actionArrY, Ρ‚ΠΎ Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ дСйствия производятся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ значСния actionArrY.

НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ «Load default position» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_buttonCalibrateLoad_clicked (), которая Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ всС элСмСнты, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ саму ΠΊΠ½ΠΎΠΏΠΊΡƒ «Load default position», Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ «Spin Box», ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ сСрвомоторов. Кнопка «Save as default», Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, становится Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ, обозначая Ρ‚Π΅ΠΌ самым Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° установки Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для сСрвомоторов, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ всС ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ значСния. Π’ ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ измСнСния Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ… полоТСния сСрвомоторов сохраняСтся Π² ΠΌΠ°ΡΡΠΈΠ² arr_def []. НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ «Save as default» Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_buttonCalibrateSave (), которая Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, сдСлав всС элСмСнты Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ.

НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ «Create new action» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_buttonCreateAction_clicked (), которая ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ actionArrY Π½Π° 1, обновляСт тСкст «Label» с ΡΡ‚ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ присвоСниС элСмСнтам массивов arr [] [] ΠΈ arr_led [] [] Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… строк, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ двиТСния, начиная со ΡΡ‚Ρ€ΠΎΠΊΠΈ actionArrY-1 Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ ΡΡ‚Ρ€ΠΎΠΊΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ spinCurrAction. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ происходит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ пСрСнос всСх Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ послС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданного Π½Π° ΠΎΠ΄Π½ΠΎ Π²ΠΏΠ΅Ρ€Π΅Π΄, Π° ΡΡ‚Ρ€ΠΎΠΊΠΈ массивов arr [] [] ΠΈ arr_led [] [], ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ spinCurrAction ΠΎΠ±Π½ΡƒΠ»ΡΡŽΡ‚ΡΡ. ПослС этого вызываСтся функция on_spinCurrAction_valueChanged (), которая Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданноС.

НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ «Delete current action» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_buttonDeleteAction_clicked (), которая ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ actionArrY Π½Π° 1, обновляСт тСкст «Label» с ΡΡ‚ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ строк arr [actionArrY-1] [] ΠΈ arr_led [actionArrY-1] [] ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ присвоСниС элСмСнтам массивов arr [] [] ΠΈ arr_led [] [] Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строк, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ двиТСния, начиная со ΡΡ‚Ρ€ΠΎΠΊΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ spinCurrAction-1, ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ строкой, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ actionArrY-1. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, происходит сдвиг всСх Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΠ΄Π½ΠΎ Π½Π°Π·Π°Π΄, начиная с Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ послСдним ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ.

НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ «Save program» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_buttonSave_clicked (), которая ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π°, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ указываСтся ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» сохранСния Π²Ρ‹Π±Ρ€Π°Π½, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «WriteOnly», послС Ρ‡Π΅Π³ΠΎ записываСт Π² Π½Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ actionArrY, Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС располагаСт элСмСнты массива arr_def [], Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ символом «;», Π° Π΄Π°Π»ΡŒΡˆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ располагаСт строку массива arr [i] [], раздСляя элСмСнты символом «;», Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ значСния строки массива arr_led [i] []. ΠŸΡ€ΠΎΡ†Π΅ΡΡ повторяСтся, постСпСнно увСличивая Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i, начиная с 0, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π½Π΅ Π΄ΠΎΡΡ‚ΠΈΠ³Π½Π΅Ρ‚ значСния, Ρ€Π°Π²Π½ΠΎΠ³ΠΎ actionArrY-1. ПослС окончания записи Ρ„Π°ΠΉΠ» закрываСтся. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вся информация ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡΡ… записываСтся Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ».

НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ «Load program» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_buttonLoad_clicked (), которая ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π°, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ указываСтся ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, содСрТащСму ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ управлСния. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Ρ‹Π±Ρ€Π°Π½, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «ReadOnly», послС Ρ‡Π΅Π³ΠΎ построчно считываСт ΠΈΠ· Π½Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ actionArrY, значСния arr_def [], записанныС Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ символом «;». Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строки Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния происходит ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ separate (). Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ строки содСрТат ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ строки для массива arr [] [], ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ separate (), ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠΈ для массива arr_led [] [], ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ separate_led (). Π§Ρ‚Π΅Π½ΠΈΠ΅ происходит Π»ΠΈΠ±ΠΎ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° количСство считанных строк Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ arr [] [] Π½Π΅ Π΄ΠΎΡΡ‚ΠΈΠ³Π½Π΅Ρ‚ значСния actionArrY.

Ѐункция separate_led () ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ сорок ΠΎΠ΄ΠΈΠ½ символ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся Π»ΠΈΠ±ΠΎ Π½ΡƒΠ»Π΅ΠΌ, Π»ΠΈΠ±ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ, ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки массива arr_led [] [], Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚ΠΎΠΈΡ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ значСния. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ функция записываСт Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ строку массива arr_led [] [] ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ символу ΠΈΠ· ΡΡ‚Ρ€ΠΎΠΊΠΈ, ΠΏΠΎΠΊΠ° количСство ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… символов Π½Π΅ Π΄ΠΎΡΡ‚ΠΈΠ³Π½Π΅Ρ‚ сорока ΠΎΠ΄Π½ΠΎΠ³ΠΎ.

Ѐункция separate () ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ значСния ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ сСрвомоторов, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ символом «;», ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΌΠ°ΡΡΠΈΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ значСния ΠΈ Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ запись. Ѐункция запускаСт Ρ†ΠΈΠΊΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡ‰Π΅Ρ‚ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ символ «;», послС Ρ‡Π΅Π³ΠΎ выдСляСт подстроку ΠΎΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ символа «; «(ΠΈΠ»ΠΈ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° строки, Ссли Ρ†ΠΈΠΊΠ» выполняСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·) ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ массива. Π¦ΠΈΠΊΠ» повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки.

НаТатиС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Start» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on_buttonStart_clicked (), которая считываСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· comboCom, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΠΎΡ€Ρ‚Π°. ПослС этого происходит ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π°, послС Ρ‡Π΅Π³ΠΎ начинаСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…, которая происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π‘Π½Π°Ρ‡Π°Π»Π° отправляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ actionArrY вмСстС с ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ «;», послС Π½Π΅Π³ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ значСния массива arr_def [], послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отправляСтся символ «;». Π”Π°Π»ΡŒΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ отправляСт значСния массива arr [] [] ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, массив arr_led [] [] пСрСдаСтся Ρ†Π΅Π»Ρ‹ΠΌΠΈ строками, отправляя символ «; «ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ посланной строки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вся информация ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… двиТСниях пСрСдаСтся Ρ€ΠΎΠ±ΠΎΡ‚Ρƒ, Π³Π΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° самого Ρ€ΠΎΠ±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄.

Рассмотрим Π² Π΄Π΅Ρ‚алях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ самого Ρ€ΠΎΠ±ΠΎΡ‚Π°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Arduino. По ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ большого количСства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… сСрвоприводов, Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ тСхничСскиС срСдства, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Amperka Multiservo Shield, которая прСдоставляСт Π½ΠΎΠΆΠΊΠΈ для 18 сСрвомоторов. Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ использованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, которая ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ возмоТностям схоТа с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, измСняя лишь ΠΏΠΈΠ½Ρ‹, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ привязаны сСрвомоторы Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, с Π½ΠΎΠΆΠ΅ΠΊ самой Arduino Mega 2560 Π½Π° Π½ΠΎΠΆΠΊΠΈ Multiservo Shield.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт массив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса Multiservo, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ mode, Ρ€Π°Π²Π½ΡƒΡŽ Π½ΡƒΠ»ΡŽ ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΡƒΡŽ Π·Π° Ρ‚ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ состоянии сСйчас находится Ρ€ΠΎΠ±ΠΎΡ‚, послС Ρ‡Π΅Π³ΠΎ привязываСт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ отобраТСния сСрвоприводов ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Ρ€ΠΎΠ±ΠΎΡ‚Π° Π² Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — стоя. ПослС этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ получСния сигналов ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контроля. ПослС получСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ числа Π½Π° Π΅Π³ΠΎ основС формируСтся цСлочислСнный ΠΈ Π±ΡƒΠ»Π΅Π²Ρ‹ΠΉ массивы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ записаны всС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π»Π΅Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π° mode становится Ρ€Π°Π²Π½Ρ‹ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. ВсС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² arr [] [], ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌΡƒ массиву ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контроля. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ массив arr [] [] Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ пСрСмСнная mode становится Ρ€Π°Π²Π½ΠΎΠΉ Π΄Π²ΡƒΠΌ, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΌΠ°ΡΡΠΈΠ² arr_led [] [], ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌΡƒ массиву ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контроля. ПослС заполнСния массива arr_led [] [] пСрСмСнная mode становится Ρ€Π°Π²Π½ΠΎΠΉ Ρ‚Ρ€Π΅ΠΌ, послС Ρ‡Π΅Π³ΠΎ начинаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Ρ‹Π»ΠΎ Π½Π°Π»Π°ΠΆΠ΅Π½ΠΎ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ контроля ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ самого Ρ€ΠΎΠ±ΠΎΡ‚Π°.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ