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

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° для исслСдования наносмСщСний ΠΌΠΈΠΊΡ€ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΉ свСтовыС ΠΏΡƒΡ‡ΠΊΠΈ, интСрфСрСнция ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… создаСт Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΈΡ„Ρ€Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° Π½Π΅ΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ„Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° распространяСтся Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠΏΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Благодаря основному ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚ Π΄ΠΈΡ„Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ части ΠΎΠΏΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° прСдставляСт Ρ‚ΠΎΡ‡Π½ΡƒΡŽ копию Π½Π΅Π΄ΠΈΡ„Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ части ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ°. Π’ΠΎ ΠΆΠ΅ ΠΎΡΡ‚аСтся… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° для исслСдования наносмСщСний ΠΌΠΈΠΊΡ€ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ агСнтство ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π”ΠΠ›Π¬ΠΠ•Π’ΠžΠ‘Π’ΠžΠ§ΠΠ«Π™ Π“ΠžΠ‘Π£Π”ΠΠ Π‘Π’Π’Π•ΠΠΠ«Π™ Π£ΠΠ˜Π’Π•Π Π‘Π˜Π’Π•Π’ ИНБВИВУВ Π€Π˜Π—Π˜ΠšΠ˜ И Π˜ΠΠ€ΠžΠ ΠœΠΠ¦Π˜ΠžΠΠΠ«Π₯ Π’Π•Π₯ΠΠžΠ›ΠžΠ“Π˜Π™ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° Ρ„ΠΈΠ·ΠΈΠΊΠΈ Π°Ρ‚ΠΎΠΌΠΎΠ² ΠΈ ΠΌΠΎΠ»Π΅ΠΊΡƒΠ»

ΠŸΠ Π˜ΠœΠ•ΠΠ•ΠΠ˜Π• ΠΠ’Π’ΠžΠœΠΠ’Π˜Π—Π˜Π ΠžΠ’ΠΠΠΠžΠ“Πž ΠΠ”ΠΠŸΠ’Π˜Π’ΠΠΠžΠ“Πž Π˜ΠΠ’Π•Π Π€Π•Π ΠžΠœΠ•Π’Π Π Π”Π›Π― Π˜Π‘Π‘Π›Π•Π”ΠžΠ’ΠΠΠ˜Π― ΠΠΠΠžΠ‘ΠœΠ•Π©Π•ΠΠ˜Π™ ΠœΠ˜ΠšΠ ΠžΠžΠ‘ΠͺΠ•ΠšΠ’ΠžΠ’

Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ 141Π± Π•Ρ„ΠΈΠΌΠΎΠ² Π’.А.

Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Ромашко Π .Π’.

Владивосток 2010 Π³.

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ 3
  • 1. ВСорСтичСскиС основы 5
  • 1.1 ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° 5
  • 1.2 Π€ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ эффСкт 6
  • 1.3 ΠžΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ гСомСтрия взаимодСйствия свСтовых Π²ΠΎΠ»Π½ Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС 9
  • 2. Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ 11
  • 2.1 Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ установка 11
  • 2.2. Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ 12
  • 2.3 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° экспСримСнта 13
  • 2.4 Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ 15
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ 17
  • Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ 18
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 20
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «motor control for 8DCMC1 20

РСгистрация ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΠΈ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² являСтся ваТнСйшСй Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, создании ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… осцилляторов, Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΌΠΈΠΊΡ€ΠΎΠΈ наноэлСктромСханичСских систСм. Π’Π°ΠΊΠΈΠ΅ систСмы ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² Ρ…ΠΈΠΌΠΈΠΈ ΠΈ Π±ΠΈΠΎΠ»ΠΎΠ³ΠΈΠΈ, слуТат Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ физичСских Π²Π΅Π»ΠΈΡ‡ΠΈΠ½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для измСрСния ΠΌΠ°Π»Ρ‹Ρ… ΠΈ ΡΠ²Π΅Ρ€Ρ…ΠΌΠ°Π»Ρ‹Ρ… масс [1−3].

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ исслСдования ΠΌΠΈΠΊΡ€ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², микромСханичСских систСм являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π° собствСнных ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ дСсятков Π½Π°Π½ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΏΡ€ΠΈ этом сами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма Π² Ρ†Π΅Π»ΠΎΠΌ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΡˆΡƒΠΌΠΎΠ²Ρ‹ΠΌ воздСйствиям внСшнСй срСды.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ систСмы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ инструмСнтами для исслСдования ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ класса физичСских Π²Π΅Π»ΠΈΡ‡ΠΈΠ½, Π² Ρ‚ΠΎΠΌ числС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² мСханичСских ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ВмСстС с Ρ‚Π΅ΠΌ высокая Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ любого ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹ΠΌ влиянию Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² (измСнСнию Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, давлСния, Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΉ, микросСйсмичСских Π²ΠΈΠ±Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΏΡ€.)

Для исслСдования мСханичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΈΠΊΡ€ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π½Π°ΡΡ‚оящСй Ρ€Π°Π±ΠΎΡ‚Π΅ Π±Ρ‹Π» ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€, основанный Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π²ΡƒΡ…Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠ³ΠΎ взаимодСйствия Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… кристаллах. АдаптивныС ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ высокоэффСктивными систСмами измСрСния ΠΌΠ°Π»Ρ‹Ρ… Ρ„Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΡΠ»ΠΎΠ²ΠΈΡΡ… Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… воздСйствий ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды. Под высокой ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° понимаСтся высокая Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π²Ρ‹ΡΠΎΠΊΠ°Ρ ΠΏΠΎΠΌΠ΅Ρ…ΠΎΠ·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ, обСспСчиваСмыС интСрфСромСтричСским ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ измСрСния, голографичСским ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ восстановлСния Ρ„Ρ€ΠΎΠ½Ρ‚Π° свСтовой Π²ΠΎΠ»Π½Ρ‹ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ, сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ слоТныС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, спСкловыС) ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ свойствами динамичСской Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для объСдинСния свСтовых ΠΏΡƒΡ‡ΠΊΠΎΠ².

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы, Π° Ρ‚Π°ΠΊ ΠΆΠ΅, благодаря постоянной пСрСзаписи динамичСской Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ низкочастотных ΡˆΡƒΠΌΠΎΠ².

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, практичСская рСализация ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы рСгистрации ΠΌΠ°Π»Ρ‹Ρ… ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π°.

1. ВСорСтичСскиС основы

1.1 ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π°

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ вмСсто ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΡΠ²Π΅Ρ‚ΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта (ΠΊΡƒΠ±Π° ΠΈΠ»ΠΈ Π·Π΅Ρ€ΠΊΠ°Π»Π°) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ срСда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ постоянно записываСтся динамичСская Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ происходит Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС нСпосрСдствСнно ΠΏΡ€ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π½Π° Π½Π΅Π³ΠΎ оптичСского излучСния. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (проявлСниС, фиксация ΠΈ Ρ‚. ΠΏ.) Π½Π΅ Ρ‚рСбуСтся. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свСта Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ стСрта. Π‘Π²Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ кристалла пСрСраспрСдСлСниС зарядов, ΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ записи) устанавливаСтся динамичСскоС равновСсиС ΠΌΠ΅ΠΆΠ΄Ρƒ распрСдСлСниями интСнсивности Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ свСта ΠΈ ΡΠ»Π΅ΠΊΡ‚ричСского заряда. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ свСтовых Π²ΠΎΠ»Π½, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ быстро, Π·Π° Π²Ρ€Π΅ΠΌΡ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ записи, Ρ‚ΠΎ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΡƒΡΠΏΠ΅Π²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° Π½ΠΈΠΌΠΈ. К «Π±Ρ‹ΡΡ‚Ρ€Ρ‹ΠΌ» здСсь слСдуСт отнСсти измСнСния, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ воздСйствиСм исслСдуСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΈΠ»ΠΈ физичСской Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹). Для Ρ‚Π°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ «Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Π°» (Π°Π½Π°Π»ΠΎΠ³ статичСской Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), Ρ‡Ρ‚ΠΎ обСспСчит ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΉ свСтовых Π²ΠΎΠ»Π½ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.

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

1.2 Π€ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ эффСкт

Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ свСтовая Π²ΠΎΠ»Π½Π° Π—Π°ΠΏΠΈΡΡŒ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ происходит Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ процСсса записи Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π»Π΅ΠΆΠΈΡ‚ Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ эффСкт (Π€Π Π­), Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ коэффициСнта прСломлСния срСды ΠΏΠΎΠ΄ дСйствиСм свСта. Π€Π Π­ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π» ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ Π² Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ Бэлл Π² 1966 Π³. ΠΊΠ°ΠΊ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ искаТСниС оптичСского Π»ΡƒΡ‡Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ элСктрооптичСскиС кристаллы LiNbO3 ΠΈ LiTaO3. Π‘Ρ‹Π»ΠΎ установлСно, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ свСтом измСнСния показатСля прСломлСния кристалла приводят ΠΊ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡŽ Ρ„Ρ€ΠΎΠ½Ρ‚Π° Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰Π΅ΠΉΡΡ Π² Π½Π΅ΠΌ свСтовой Π²ΠΎΠ»Π½Ρ‹ ΠΈ, ΠΊΠ°ΠΊ слСдствиС, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ использования этих ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Π°Ρ€ΠΌΠΎΠ½ΠΈΠΊΠΈ ΠΈΠ»ΠΈ высокоскоростных модуляторах. ВскорС послС открытия Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ эффСкта Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ кристалл ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ состояниС Π½Π°Π³Ρ€Π΅Π²ΠΎΠΌ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ засвСткой. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ кристалл ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для записи ΠΈ ΡΡ‚ирания Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ динамичСскими. К Π½Π°ΡΡ‚ΠΎΡΡ‰Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ эффСкт ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ Π² Π±ΠΎΠ»ΡŒΡˆΠΎΠΌ количСствС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ²: диэлСктриках, ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ°Ρ…, ΠΆΠΈΠ΄ΠΊΠΈΡ… кристаллах, органичСских ΠΏΠΎΠ»ΠΈΠΌΠ΅Ρ€Π°Ρ… [7−10].

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

Рис 1. МодСль Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ эффСкта. Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Ρ‹ Π²ΠΎΠ·Π±ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ свСтом с Π΄ΠΎΠ½ΠΎΡ€Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ (D) Π² Π·ΠΎΠ½Ρƒ проводимости, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π΄ΠΈΡ„Ρ„ΡƒΠ½Π΄ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€Π΅ΠΉΡ„ΡƒΡŽΡ‚ Π² ΡΠ»Π΅ΠΊΡ‚ричСском ΠΏΠΎΠ»Π΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Ρ‹ Π°ΠΊΡ†Π΅ΠΏΡ‚ΠΎΡ€Π°ΠΌΠΈ (А) ΠΈΠ»ΠΈ ΠΈΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠ½ΠΎΡ€Π°ΠΌΠΈ

ПопаданиС свСтового излучСния Π² Ρ„отопроводящий кристалл ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡŽ Π² Π½Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… (Ρ„ΠΎΡ‚ΠΎΠΈΠ½Π΄ΡƒΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…) ΠΏΠ°Ρ€ элСктронов ΠΈ ΠΈΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ½ΠΎΡ€ΠΎΠ². Π€ΠΎΡ‚ΠΎΠΈΠ½Π΄ΡƒΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСктроны, Π΄ΠΈΡ„Ρ„ΡƒΠ½Π΄ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠ΅ Π² ΡΠ»Π°Π±ΠΎΠΎΡΠ²Π΅Ρ‰Π΅Π½Π½Ρ‹Π΅ области, Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΌ Π°ΠΊΡ†Π΅ΠΏΡ‚ΠΎΡ€Π°ΠΌΠΈ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΈΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ½ΠΎΡ€Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, являясь Ρ‡Π°ΡΡ‚ΡŒΡŽ кристалличСской Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π²Π΅Π΄Π΅Ρ‚ ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡΠΌ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ пространствСнный заряд, ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ распрСдСлСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Π° ΠΈ ΠΏΠΎΠ²Ρ‚оряСт ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ распрСдСлСниС интСнсивности свСта. НСскомпСнсированный заряд ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ элСктричСского поля, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅ΠΌ пространствСнного заряда. Под дСйствиСм этого поля всС свободныС элСктроны (ΠΊΠ°ΠΊ ΠΈΠ½Π΄ΡƒΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ свСтом, Ρ‚Π°ΠΊ ΠΈ Ρ‚СрмичСски) Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π΄Ρ€Π΅ΠΉΡ„ΠΎΠ²Π°Ρ‚ΡŒ, формируя элСктричСский Ρ‚ΠΎΠΊ.

Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, элСктричСскоС ΠΏΠΎΠ»Π΅, возникшСС Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ кристалла, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Π΅Π³ΠΎ показатСля прСломлСния Π² ΡΠΈΠ»Ρƒ наличия Ρƒ Π½Π΅Π³ΠΎ элСктрооптичСских свойств.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΉ свСтовыС ΠΏΡƒΡ‡ΠΊΠΈ, интСрфСрСнция ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… создаСт Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΈΡ„Ρ€Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° Π½Π΅ΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ„Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° распространяСтся Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠΏΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Благодаря основному ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚ Π΄ΠΈΡ„Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ части ΠΎΠΏΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° прСдставляСт Ρ‚ΠΎΡ‡Π½ΡƒΡŽ копию Π½Π΅Π΄ΠΈΡ„Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ части ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ°. Π’ΠΎ ΠΆΠ΅ ΠΎΡΡ‚аСтся справСдливым для Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ ΠΏΡƒΡ‡ΠΊΠΎΠ² Π² ΠΊΡ€ΠΈΡΡ‚Π°Π»Π»Π΅. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ послС кристалла Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΊΠΎΠ³Π΅Ρ€Π΅Π½Ρ‚Π½ΠΎΠ΅ слоТСниС Π΄Π²ΡƒΡ… ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… свСтовых ΠΏΡƒΡ‡ΠΊΠΎΠ² с Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π²ΠΎΠ»Π½ΠΎΠ²Ρ‹ΠΌΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° сопряТСния Π²ΠΎΠ»Π½ΠΎΠ²Ρ‹Ρ… Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² Π² ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π² Ρ‚ΠΎΠΌ числС динамичСской) Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ автоматичСски. Π­Ρ‚ΠΎ позволяСт Π² Ρ‡Π°ΡΡ‚ности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ»Π½Ρ‹ со ΡΠΊΠΎΠ»ΡŒ ΡƒΠ³ΠΎΠ΄Π½ΠΎ слоТным Π²ΠΎΠ»Π½ΠΎΠ²Ρ‹ΠΌ Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ Π² ΠΎΠ΄Π½ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² ΠΎΠ±ΠΎΠΈΡ… ΠΏΠ»Π΅Ρ‡Π°Ρ… Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° Π±Π΅Π· сниТСния эффСктивности Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

1.3 ΠžΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ гСомСтрия взаимодСйствия свСтовых Π²ΠΎΠ»Π½ Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС

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

Π‘Ρ…Π΅ΠΌΠ° ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ взаимодСйствия свСтовых ΠΏΡƒΡ‡ΠΊΠΎΠ² Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС прСдставлСна Π½Π° Ρ€ΠΈΡ. 2.

Рис. 2 Π‘Ρ…Π΅ΠΌΠ° ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ взаимодСйствия свСтовых ΠΏΡƒΡ‡ΠΊΠΎΠ² Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС

S — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ Π²ΠΎΠ»Π½Π°, R — опорная. Π‘Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ Π»ΡƒΡ‡ΠΈ приходят Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ кристалл ΠΏΠΎΠ΄ прямым ΡƒΠ³Π»ΠΎΠΌ, Π³Π΄Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΡƒ, которая Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΊ Π½ΠΈΠΌ ΠΏΠΎΠ΄ ΡƒΠ³Π»ΠΎΠΌ 45?. Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ взаимодСйствия свСтовых ΠΏΡƒΡ‡ΠΊΠΎΠ² опрСдСляСт ΠΈΡ… Π²Π·Π°ΠΈΠΌΠ½Π°Ρ ориСнтация ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΊΡ€ΠΈΡΡ‚аллографичСским осям. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ взаимодСйствия Π²ΠΎΠ»Π½ Π² ΡΠ»Π΅ΠΊΡ‚рооптичСском кристаллС сущСствСнно зависит ΠΎΡ‚ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ элСктричСского поля Π² ΠΊΡ€ΠΈΡΡ‚Π°Π»Π»Π΅, срСза кристалла ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ голографичСской Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ кристаллографичСских осСй.

Рис. 3 ΠžΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ схСма записи Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС

ΠŸΡ€ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ кристалла, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡ. 3 Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ S-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΈ ΠΎΠΏΠΎΡ€Π½ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹, P-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ ΠΈ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ систСму поляризационно нСзависимой. Благодаря этому Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ·Π»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½ΠΎ-Ρ€Π°ΡΡΠ΅Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ·Π»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠ΅ΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΎΠ»ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ свСтовода.

2. Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

2.1 Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ установка

Для исслСдования ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Ρ‹Π»Π° собранна ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ установка Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ голографичСского ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° объСдинСния Π²ΠΎΠ»Π½, изобраТСнная Π½Π° Ρ€ΠΈΡ. 4.

Рис.4 Π‘Ρ…Π΅ΠΌΠ° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ установки. m1, m3, m4 — Π·Π΅Ρ€ΠΊΠ°Π»Π°; m2 — ΡΠ²Π΅Ρ‚ΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ; L1, L2,L3 — ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½Π·Ρ‹; Π»/4 — Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡŒΠ²ΠΎΠ»Π½ΠΎΠ²Π°Ρ пластинка; ЀРК — Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ кристалл; D — ΡΠ»Π΅ΠΊΡ‚родинамичСский ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ; ЀП — Ρ„ΠΎΡ‚ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ; MT -ΠΌΠΎΡ‚ΠΎΡ€Π΅Π·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄Π²ΡƒΡ…-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½Ρ‹ΠΉ транслятор

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ источника излучСния использовался Nd: YAG-Π»Π°Π·Π΅Ρ€ с Π΄Π»ΠΈΠ½ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹ 1064 Π½ΠΌ. Π›Π°Π·Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡƒΡ‡ΠΎΠΊ дСлился Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΉ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‡ΠΎΠΊ фокусировался ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»ΡΠ»ΡΡ Π½Π° ΠΈΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ элСктродинамичСский ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ исслСдуСмому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. ВслСдствиС ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΠΎΠ±Ρ€Π°Π·Ρ†Π°, ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΈΠ·Π»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ Ρ„Π°Π·Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ ΡΠΎΠ±ΠΈΡ€Π°Π»ΠΎΡΡŒ Π»ΠΈΠ½Π·ΠΎΠΉ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»ΡΠ»ΠΎΡΡŒ Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ кристалл. ДСмодуляция Ρ„Π°Π·Ρ‹ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»Π°ΡΡŒ Π·Π° Π΅Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚вия с ΠΎΠΏΠΎΡ€Π½ΠΎΠΉ Π²ΠΎΠ»Π½ΠΎΠΉ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ„ΠΎΡ€ΠΌΠ΅Ρ€ΡƒΠ΅ΠΌΠΎΠΉ Π² ΠΊΡ€ΠΈΡΡ‚Π°Π»Π»Π΅ CdTe. Π˜Π½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΠ»ΠΎΠ²Π°Π»Π»ΠΎΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΎΡ‚ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°. Π‘ΠΈΠ³Π½Π°Π» ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‡Π΅Ρ€Π΅Π· АЦП поступал Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

2.2 Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ исслСдуСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ вытянутыС ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹Π΅ свСтоводы Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 15 ΠΌΠΊΠΌ ΠΈ 2 ΠΌΠΊΠΌ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΉ. ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ мощности ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° излучСния ΠΈ ΠΈΠ·Π»ΡƒΡ‡Π΅Π½ΠΈΡ направляСмого Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»ΠΎ 5%. Π’Π΅ΠΌ самым ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ исслСдованиС ΡΠ»Π°Π±ΠΎΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΈ ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Рис. 5 Π‘Π½ΠΈΠΌΠΎΠΊ исслСдуСмого ΠΎΠ±Ρ€Π°Π·Ρ†Π° с Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 15 ΠΌΠΊΠΌ

Рис. 6 Π‘Π½ΠΈΠΌΠΎΠΊ исслСдуСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 2 ΠΌΠΊΠΌ

Рис. 7 Π‘Π½ΠΈΠΌΠΎΠΊ Π»Π°Π·Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΈΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

НСсмотря Π½Π° ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ структуру ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡƒΡ‡ΠΊΠ° (рис. 8), благодаря голографичСскому ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ объСдинСния Π²ΠΎΠ»Π½ Π² ΠΊΡ€ΠΈΡΡ‚Π°Π»Π»Π΅, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π΅Π³ΠΎ фазовая дСмодуляция.

2.3 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° экспСримСнта

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‡ΠΎΠΊ фокусировался короткофокусной Π»ΠΈΠ½Π·ΠΎΠΉ L1 (рис. 4) Π½Π° ΠΈΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (рис. 4). ΠŸΠΎΠΏΠ΅Ρ€Π΅Ρ‡Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° Π² ΠΌΠ΅ΡΡ‚Π΅ максимальной фокусировкС составлял 50 ΠΌΠΊΠΌ.

Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ располагался рядом с Ρ€Π΅ΠΏΠ΅Ρ€Π½Ρ‹ΠΌ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΌ Π²ΠΎΠ»ΠΎΠΊΠ½ΠΎΠΌ с Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 130 ΠΌΠΊΠΌ Π½Π° Ρ€Π°ΠΌΠΊΠ΅, ТСстко связанной с ΡΠ»Π΅ΠΊΡ‚родинамичСским ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (рис. 8). Π’ ΡΠΈΠ»Ρƒ Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π»ΠΈ ΠΌΠ°Π»Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ для поиска ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π·Ρ†Π° использовалась двухкоординатная систСма Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пСрСмСщСния Standa 8DCMC1.

Данная систСма ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 14 Π½ΠΌ.

Рис. 8 Π’Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ располоТСниС ΠΎΠ±Ρ€Π°Π·Ρ†Π° с Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 15 ΠΌΠΊΠΌ ΠΈ Ρ€Π΅ΠΏΠ΅Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²ΠΎΠ³ΠΎ Π²ΠΎΠ»ΠΎΠΊΠ½Π°

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½Π°Π½ΠΎ-трансляторами систСмы ΠΌΠΎΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пСрСмСщСния ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. Для ΠΏΠΎΠ΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ управлСния Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ спСциализированноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС «motor control for 8DCMC1», Π³Π»Π°Π²Π½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСдставлСно Π½Π° Ρ€ΠΈΡ. 8. (листинг Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ)

Рис. 9 Π“Π»Π°Π²Π½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «motor control for 8DCMC1»

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»Π° осущСствлСна рСгистрация ΠΈ ΡΠΈΠ½Ρ…ронизация сигнала, ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° ΠΠ¦ΠŸ, с ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Π½ΠΎ-транслятора, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

2.4 Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»Π°ΡΡŒ ΠΎΡ‚ Ρ€Π΅ΠΏΠ΅Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²ΠΎΠ³ΠΎ Π²ΠΎΠ»ΠΎΠΊΠ½Π° ΠΊ ΠΈΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Π₯, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡ. 8.

Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ получСнная Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Ρ‹ Π΄Π΅ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ сигнала ΠΎΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° для Π΄Π²ΡƒΡ… ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² с Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 15 ΠΌΠΊΠΌ ΠΈ 2 ΠΌΠΊΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Ρ€ΠΈΡ. 10. ΠŸΡ€ΠΈ этом Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π° ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΠΎΠ±Ρ€Π°Π·Ρ†Π° составляла 20 Π½ΠΌ.

Рис. 10 Зависимости Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Ρ‹ сигнала ΠΎΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡƒΡ‡ΠΊΠ° для ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² с Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 15 ΠΌΠΊΠΌ ΠΈ 2 ΠΌΠΊΠΌ

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ€ΠΈΡ. 10 Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ измСнСния сигнала дСмодуляции с Ρ€Π°ΡΡΡ‚ояниСм ΠΎΡ‚ Ρ€Π΅ΠΏΠ΅Ρ€Π½ΠΎΠ³ΠΎ оптичСского Π²ΠΎΠ»ΠΎΠΊΠ½Π° соотвСтствуСт прямому оптичСскому ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ микроскопа (рис. 7), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Π½Π°ΡΡ‚оящСй Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΈ ΠΏΡ€Π°ΠΊΡ‚ичСски Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° систСма рСгистрации ΠΌΠ°Π»Ρ‹Ρ… ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ динамичСских ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ„ΠΎΡ‚ΠΎΡ€Π΅Ρ„Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ кристаллС. Показано Ρ‡Ρ‚ΠΎ такая систСма позволяСт Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ колСбания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ 2 ΠΌΠΊΠΌ. Π‘ΠΎΠ·Π΄Π°Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для управлСния Π½Π°Π½ΠΎ-ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π΅Ρ€Π°ΠΌΠΈ.

Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ гСомСтрия формирования динамичСской Π³ΠΎΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π€Π Πš позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ поляризационно-нСзависимыС схСмы Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ², разработанная ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π² Ρ‚ΠΎΠΌ числС ΠΈ Π΄Π»Ρ исслСдования слоТных ΠΌΠΈΠΊΡ€ΠΎΠΈ Π½Π°Π½ΠΎΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², взаимодСйствиС излучСния с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ Π΅Π³ΠΎ дСполяризации.

1. B. Ilic, H. G. Craighead, S. Krylov, W. Senaratne, C. Ober, and P. Neuzil. Attogram detection using nanoelectromechanical oscillators // J. Appl. Phys. — 2004 -Vol.95.

2. M. Sato, B. E. Hubbard, L. Q. English, and A. J. Sievers, B. Ilic, D. A. Czaplewski and H. G. Craighead. Study of intrinsic localized vibrational modes in micromechanical oscillator arrays // CHAOS — 2003. -Vol. 13, No.2 — P.702−715.

3. L. Sekaric, a) M. Zalalutdinov, S. W. Turner, A. T. Zehnder, J. M. Parpia, and H. G. Craighead Nanomechanical resonant structures as tunable passive modulators of light // J. Appl. Phys. — 2002 -Vol.80.

4. S. Di Girolamo, A.A.Kamshilin, R.V.Romashko, Yu.N.Kulchin, J.-C.Launay. Fast adaptive interferometer on dynamic reflection hologram in CdTe: V // Optics Express. — 2007. — Vol.15. — No.2. — P.545−555.

5. М. П. ΠŸΠ΅Ρ‚Ρ€ΠΎΠ², Π‘. И. Π‘Ρ‚Π΅ΠΏΠ°Π½ΠΎΠ², А. Π’. Π₯ΠΎΠΌΠ΅Π½ΠΊΠΎ. Π€ΠΎΡ‚ΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСктрооптичСскиС срСды Π² Π³ΠΎΠ»ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈ ΠΎΠΏΡ‚ичСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. — Π›.: Наука Π›Π΅Π½ΠΈΠ½Π³Ρ€. ΠΎΡ‚Π΄.-Π½ΠΈΠ΅. — 1983. — 269 с.

6. A. Ashkin, G. D. Boyd, J. M. Dziedzic, R. G. Smith, A. A. Ballman, J. J. Levinstein, K. Nassau. Optically-induced refractive index inhomogeneities in LiNbO3 and LiTaO3 // Appl. Phys. Lett. — 1966. — V.9. — P.72.

7. P. Gunter, J.-P. Huignard, eds. Photorefractive materials and their applications 2: Materials. — Springer Series in Optical Sciences. — 2007. — V.114. — 646 p.

8. G. Zhang, D. Kip, D. D. Nolte, J. Xu, eds. OSA Trends in Optics and Photonics: Photorefractive Effects, Materials, and Devices. — 2005. — V.99.

9. P. Delaye, C. Denz, L. Mager, G. Montemezzani, eds. OSA Trends in Optics and Photonics: Photorefractive Effects, Materials, and Devices. — 2003. — V.87.

10. Π’. Π›. Π’ΠΈΠ½Π΅Ρ†ΠΊΠΈΠΉ, Н. Π’. ΠšΡƒΡ…Ρ‚Π°Ρ€Π΅Π². ДинамичСская голография. — ΠšΠΈΠ΅Π²: Наукова Π΄ΡƒΠΌΠΊΠ°. — 1983. — 125 с.

11. Di Girolamo S., Romashko R.V., Kulchin Y.N., Kamshilin A.A. Orthogonal geometry of wave interaction in a photorefractive crystal for linear phase demodulation // Opt. Commun. — 2010. — V.283. — P.128−131.

12. R. V. Romashko, S. Di Girolamo, Y. N. Kulchin, and A. A. Kamshilin. Photorefractive vectorial wave mixingin different geometries// J. Opt. Soc. Am. -2010. -Vol. 27. No. 2. -P. 311−317.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «motor control for 8DCMC1»

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создана Π² ΡΡ€Π΅Π΄Π΅ MS Visual C++ 6.0 Π½Π° Π±Π°Π·Π΅ класса MFC. Бостоит ΠΈΠ· Π΄Π²ΡƒΡ… Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½: SERIALGATETEST_DIALOG ΠΈ ABOUTBOX. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

1. ВзаимодСйствиС с COM — ΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° 8DCMC1 ΠΏΠΎ ΡΡ€Π΅Π΄ΡΡ‚Π²Π°ΠΌ интСрфСйса RS232. Π­Ρ‚Π° функция Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ — SerialGate.dll.

2. Аналог ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для управлСния ΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌΠΈ двигатСлями, содСрТащий ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»Π΅ Π²Ρ‹Π²ΠΎΠ΄Π°.

3. Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡˆΠ°Π³ΠΎΠ²Ρ‹Ρ… Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»Π΅ΠΉ (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ускорСниС).

4. 2D-cΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ участка.

5. ΠžΠΏΡ€ΠΎΡ АЦП, запись ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ».

Листинг SerialGateTest.cpp:

#include «stdafx.h»

#include «SerialGateTest.h»

#include «SerialGateTestDlg.h»

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

BEGIN_MESSAGE_MAP (CSerialGateTestApp, CWinApp)

//{{AFX_MSG_MAP (CSerialGateTestApp)

//}}AFX_MSG

ON_COMMAND (ID_HELP, CWinApp: OnHelp)

END_MESSAGE_MAP ()

// CSerialGateTestApp construction

CSerialGateTestApp:CSerialGateTestApp ()

{

}

CSerialGateTestApp theApp;

// CSerialGateTestApp initialization

BOOL CSerialGateTestApp: InitInstance ()

{

AfxEnableControlContainer ();

#ifdef _AFXDLL

Enable3dControls ();// Call this when using MFC in a shared DLL

#else

Enable3dControlsStatic ();// Call this when linking to MFC statically

#endif

CSerialGateTestDlg dlg;

m_pMainWnd = &dlg;

int nResponse = dlg. DoModal ();

if (nResponse == IDOK)

{

}

else if (nResponse == IDCANCEL)

{

}

return FALSE;

}

Листинг SerialGateTestDlg.cpp:

#include

#include

#include

#include «stdafx.h»

#include «SerialGateTest.h»

#include «SerialGateTestDlg.h»

#include

#include

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

//using System;

int key=0;

//#include «thread.h»

//#include System: Threading;

// CAboutDlg dialog used for App About

class CAboutDlg: public CDialog

{

public:

CAboutDlg ();

// Dialog Data

//{{AFX_DATA (CAboutDlg)

enum { IDD = IDD_ABOUTBOX };

//}}AFX_DATA

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL (CAboutDlg)

protected:

virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support

//}}AFX_VIRTUAL

// Implementation

protected:

//{{AFX_MSG (CAboutDlg)

//}}AFX_MSG

DECLARE_MESSAGE_MAP ()

};

CAboutDlg:CAboutDlg (): CDialog (CAboutDlg:IDD)

{

//{{AFX_DATA_INIT (CAboutDlg)

//}}AFX_DATA_INIT

}

void CAboutDlg: DoDataExchange (CDataExchange* pDX)

{

CDialog:DoDataExchange (pDX);

//{{AFX_DATA_MAP (CAboutDlg)

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP (CAboutDlg, CDialog)

//{{AFX_MSG_MAP (CAboutDlg)

// No message handlers

//}}AFX_MSG_MAP

END_MESSAGE_MAP ()

// CSerialGateTestDlg dialog

CSerialGateTestDlg:CSerialGateTestDlg (CWnd* pParent /*=NULL*/)

: CDialog (CSerialGateTestDlg:IDD, pParent)

{

//{{AFX_DATA_INIT (CSerialGateTestDlg)

m_port = 5;

m_rate = 9600;

m_recieve = _T (««);

m_send = _T (««);

m_axsis = _T (««);

m_vel = _T (««);

m_asel = _T (««);

m_gomr = _T (««);

m_mraxsis0 = _T (««);

m_mraxsis1 = _T (««);

m_tapeaxsis0 = _T (««);

m_tapeaxsis1 = _T (««);

m_dataininput = _T (««);

m_dataoutput = _T (««);

m_past = _T (««);

//}}AFX_DATA_INIT

// Note that LoadIcon does not require a subsequent DestroyIcon in Win32

m_hIcon = AfxGetApp ()->LoadIcon (IDR_MAINFRAME);

}

void CSerialGateTestDlg: DoDataExchange (CDataExchange* pDX)

{

CDialog:DoDataExchange (pDX);

//{{AFX_DATA_MAP (CSerialGateTestDlg)

DDX_Control (pDX, IDC_RECIEVE, m_recievecontr);

DDX_Text (pDX, IDC_PORT, m_port);

DDX_Text (pDX, IDC_RATE, m_rate);

DDX_Text (pDX, IDC_RECIEVE, m_recieve);

DDX_Text (pDX, IDC_SEND, m_send);

DDX_Text (pDX, IDC_SETAXSCIS, m_axsis);

DDX_Text (pDX, IDC_SETVEL, m_vel);

DDX_Text (pDX, IDC_SETASEL, m_asel);

DDX_Text (pDX, IDC_MR, m_gomr);

DDX_Text (pDX, IDC_MRAXSIS0, m_mraxsis0);

DDX_Text (pDX, IDC_MRAXSIS1, m_mraxsis1);

DDX_Text (pDX, IDC_TAPEAXSIS1, m_tapeaxsis1);

DDX_Text (pDX, IDC_DATAEXCHANGE, m_dataininput);

DDX_Text (pDX, IDC_DATAEXCHANGE2, m_dataoutput);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP (CSerialGateTestDlg, CDialog)

//{{AFX_MSG_MAP (CSerialGateTestDlg)

ON_WM_SYSCOMMAND ()

ON_WM_PAINT ()

ON_WM_QUERYDRAGICON ()

ON_BN_CLICKED (IDC_BUTTON2, OnOpen)

ON_WM_TIMER ()

ON_BN_CLICKED (IDC_BUTTON1, OnSend)

ON_BN_CLICKED (IDC_BUTTON3, OnButton3)

ON_BN_CLICKED (IDC_ON_SETAXSIS, OnOnSetaxsis)

ON_BN_CLICKED (IDC_ON_SETACSEL, OnOnSetacsel)

ON_BN_CLICKED (IDC_ON_SETVELOS, OnOnSetvelos)

ON_BN_CLICKED (IDC_ON_MOTROON, OnOnMotroon)

ON_BN_CLICKED (IDC_ON_MOTOROFF, OnOnMotoroff)

ON_BN_CLICKED (IDC_ON_MR, OnOnMr)

ON_BN_CLICKED (IDC_ON_GO, OnOnGo)

//}}AFX_MSG_MAP

END_MESSAGE_MAP ()

// CSerialGateTestDlg message handlers

BOOL CSerialGateTestDlg: OnInitDialog ()

{

CDialog:OnInitDialog ();

// Add «About…» menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.

ASSERT ((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT (IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu (FALSE);

if (pSysMenu ≠ NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString (IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty ())

{

pSysMenu->AppendMenu (MF_SEPARATOR);

pSysMenu->AppendMenu (MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// Set the icon for this dialog. The framework does this automatically

// when the application’s main window is not a dialog

SetIcon (m_hIcon, TRUE);// Set big icon

SetIcon (m_hIcon, FALSE);// Set small icon

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control

}

void CSerialGateTestDlg: OnSysCommand (UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal ();

}

else

{

CDialog:OnSysCommand (nID, lParam);

}

}

// If you add a minimize button to your dialog, you will need the code below

// to draw the icon. For MFC applications using the document/view model,

// this is automatically done for you by the framework.

void CSerialGateTestDlg: OnPaint ()

{

if (IsIconic ())

{

CPaintDC dc (this); // device context for painting

SendMessage (WM_ICONERASEBKGND, (WPARAM) dc. GetSafeHdc (), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics (SM_CXICON);

int cyIcon = GetSystemMetrics (SM_CYICON);

CRect rect;

GetClientRect (&rect);

int x = (rect.Width () — cxIcon + 1) / 2;

int y = (rect.Height () — cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon (x, y, m_hIcon);

}

else

{

CDialog:OnPaint ();

}

}

// The system calls this to obtain the cursor to display while the user drags

// the minimized window.

HCURSOR CSerialGateTestDlg: OnQueryDragIcon ()

{

return (HCURSOR) m_hIcon;

}

void CSerialGateTestDlg: OnOpen ()

{

// TODO: Add your control notification handler code here

UpdateData (true);

if (m_port == 0 || m_rate == 0)

{

MessageBox («Not correct data» ," Error", MB_ICONERROR);

return;;

}

bool b = sg. Open (m_port, m_rate);

if (b == false)

{

MessageBox («Can`t open Port» ," Error", MB_ICONERROR);

return;;

}

else

{

MessageBox («Port open OK» ," Info", MB_ICONINFORMATION);

}

SetTimer (1, 1000, NULL);

}

void CSerialGateTestDlg: OnTimer (UINT nIDEvent)

{

if (key==0)

{// TODO: Add your message handler code here and/or call default

char buff[128];

int rcv = sg. Recv (buff, sizeof (buff));

this->m_recievecontr.SetWindowText (««);

if (rcv > 0)

{

for (int i = 0; i< rcv; i++)

this->m_recieve += buff[i];

UpdateData (false);

}

}

CDialog:OnTimer (nIDEvent);

}

void CSerialGateTestDlg: OnSend ()

{

// TODO: Add your control notification handler code here

UpdateData (true);

int len = this->m_send.GetLength ();

if (len > 0)

{

char* LocBuf = m_send.GetBuffer (128);

sg.Send (LocBuf, len);

m_send.ReleaseBuffer ();

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

}

}

void CSerialGateTestDlg: OnButton3()

{

UpdateData (true);

int len = this->m_send.GetLength ();

if (len > 0)

{

char ent=0×01;

char* ent2 = &ent;

sg.Send (ent2, 1);

char* LocBuf = m_send.GetBuffer (128);

sg.Send (LocBuf, len);

m_send.ReleaseBuffer ();

}

}

void CSerialGateTestDlg: OnOnSetaxsis () //Π²Ρ‹Π±ΠΎΡ€ оси

{

UpdateData (true);

int popytka=0;

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

char ctrlkey=0×01;

char* ctrlkey2 = &ctrlkey;

sg.Send (ctrlkey2, 1);

int len=1;

char* LocBuf = m_axsis.GetBuffer (128);

sg.Send (LocBuf, len);

m_send.ReleaseBuffer ();

CString tp="tp" ;

char* LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

}

void CSerialGateTestDlg: OnOnSetacsel () //ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ускорСниС

{

UpdateData (true);

CString sa="sa" ;

char* LocBuf2 = sa. GetBuffer (128);

sg.Send (LocBuf2, 2);

sa.ReleaseBuffer ();

int len = this->m_asel.GetLength ();

if (len > 0)

{

char* LocBuf = m_asel.GetBuffer (128);

sg.Send (LocBuf, len);

m_asel.ReleaseBuffer ();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

//ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°tl

CString tl="tl" ;

char* LocBuf3 = tl. GetBuffer (128);

sg.Send (LocBuf3, 2);

tl.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

//m_recievecontr.SetWindowText («0»);

//CEdit:Clear;

//UpdateData (false);

}

}

void CSerialGateTestDlg: OnOnSetvelos ()

{

UpdateData (true);

CString sv="sv" ;

char* LocBuf2 = sv. GetBuffer (128);

sg.Send (LocBuf2, 2);

sv.ReleaseBuffer ();

int len = this->m_vel.GetLength ();

if (len > 0)

{

char* LocBuf = m_vel.GetBuffer (128);

sg.Send (LocBuf, len);

m_vel.ReleaseBuffer ();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

//ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ty

CString ty="ty" ;

char* LocBuf3 = ty. GetBuffer (128);

sg.Send (LocBuf3, 2);

ty.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

}

}

void CSerialGateTestDlg: OnOnMotroon ()

{

UpdateData (true); //Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΡ‚ΠΎΡ€

CString mn="mn" ;

char* LocBuf2 = mn. GetBuffer (128);

sg.Send (LocBuf2, 2);

mn.ReleaseBuffer ();// TODO: Add your control notification handler code here

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

}

void CSerialGateTestDlg: OnOnMotoroff () //Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΡ‚ΠΎΡ€

{

CString mf="mf" ;

char* LocBuf2 = mf. GetBuffer (128);

sg.Send (LocBuf2, 2);

mf.ReleaseBuffer ();// TODO: Add your control notification handler code here

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

}

void CSerialGateTestDlg: OnOnMr () //ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅

{

UpdateData (true);

CString mr="mr" ;

char* LocBuf2 = mr. GetBuffer (128);

sg.Send (LocBuf2, 2);

mr.ReleaseBuffer ();

int len = this->m_gomr.GetLength ();

if (len > 0)

{

char* LocBuf = m_gomr.GetBuffer (128);

sg.Send (LocBuf, len);

m_gomr.ReleaseBuffer ();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

//ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ty

CString tp="tp" ;

char* LocBuf3 = tp. GetBuffer (128);

sg.Send (LocBuf3, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

//m_recieve.Clear ();

}

}

void CSerialGateTestDlg: OnOnGo () //////////////////ΠΊΠ½ΠΎΠΏΠΊΠ° GO//////////////////////

{

UpdateData (true);

key=1;

int axis=0;

int res;

TP0:

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

char ctrlkey=0×01;

char* ctrlkey2 = &ctrlkey;

sg.Send (ctrlkey2, 1);

int len=1;

char axsis0='0';

char* axsis02 = &axsis0;

sg.Send (axsis02, 1);

CString tp="tp" ;

char* LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

Sleep (700); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

char buff[128];

int rcv = sg. Recv (buff, sizeof (buff));

int elmbuff=rcv-1;

buff[rcv]=0;

CString str;

for (int i = 0; i< rcv; i++)

str += buff[i];

char* j = strchr (buff, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

CString mraxsis02; //сюда записываСтся Π·Π°Π½Ρ‡Π΅Π½ΠΈΠ΅ Π΅ ΠΎΠΊΠΎΡˆΠΊΠ° edit axsis0

GetDlgItemText (IDC_MRAXSIS0,mraxsis02);

int posnum0=atoi (mraxsis02);

int posnum0_mr=res-posnum0/2;

CString mraxsis0_mr;

mraxsis0_mr =itoa (posnum0_mr, mraxsis0_mr.GetBuffer (10), 10);

//Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

CString mr="MA" ;

char* LocBuf8 = mr. GetBuffer (128);

sg.Send (LocBuf8, 2);

mr.ReleaseBuffer ();

len=mraxsis0_mr.GetLength ();

char* LocBuf9 = mraxsis0_mr.GetBuffer (128);

sg.Send (LocBuf9, len);

mraxsis0_mr.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

int gto0=posnum0_mr;

int posicino00=res;

Sleep (400);

TP1:

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

len=1;

char axsis1='1';

char* axsis12 = &axsis1;

sg.Send (axsis12, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (700);

//ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

char buff2[128];

rcv = sg. Recv (buff2, sizeof (buff2));

elmbuff=rcv-1;

buff2[rcv]=0;

CString str2;

for (i = 0; i< rcv; i++)

str2 += buff2[i];

j = strchr (buff2, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff2, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

CString mraxsis12; //сюда записываСтся Π·Π°Π½Ρ‡Π΅Π½ΠΈΠ΅ Π΅ ΠΎΠΊΠΎΡˆΠΊΠ° edit axsis0

GetDlgItemText (IDC_MRAXSIS1,mraxsis12);

int posnum1=atoi (mraxsis12);

int posnum1_mr=res-posnum½;

CString mraxsis1_mr;

mraxsis1_mr =itoa (posnum1_mr, mraxsis1_mr.GetBuffer (10), 10);

//Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

mr="MA" ;

LocBuf8 = mr. GetBuffer (128);

sg.Send (LocBuf8, 2);

mr.ReleaseBuffer ();

len=mraxsis1_mr.GetLength ();

LocBuf9 = mraxsis1_mr.GetBuffer (128);

sg.Send (LocBuf9, len);

mraxsis1_mr.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

int gto1=posnum1_mr;

int posicino01=res;

Sleep (130);

int pos01=gto1;

int pos00=gto0;

int modul;

do

{

Sleep (400);

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

sg.Send (axsis02, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (800); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

CString str;

char buff[128];

rcv = sg. Recv (buff, sizeof (buff));

if (rcv > 0)

elmbuff=rcv-1;

buff[rcv]=0;

for (int i = 0; i< rcv; i++)

str += buff[i];

j = strchr (buff, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

}//ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ мСсто

modul=res-gto0;

if (modul<0) modul=-modul;

} while (modul>20);

do

{

Sleep (800);

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

sg.Send (axsis12, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (400); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

char buff[128];

rcv = sg. Recv (buff, sizeof (buff));

elmbuff=rcv-1;

buff[rcv]=0;

CString str;

for (int i = 0; i< rcv; i++)

str += buff[i];

j = strchr (buff, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}//ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ мСсто

modul=res-gto1;

if (modul<0) modul=-modul;

}while (modul>20);

MessageBox («peremecheno» ," ok", MB_ICONINFORMATION);

//UpdateData (false);

//////////////ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ сканированиС////////////////

int tape0=0;

int tape1=0;

int tape0t=0; //Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄

int tape1t=0;

//CString tapeaxsis01;

//GetDlgItemText (IDC_TAPEAXSIS0,tapeaxsis01);

//tape0=atoi (tapeaxsis01);

CString tapeaxsis11;

GetDlgItemText (IDC_TAPEAXSIS1,tapeaxsis11);

tape1=atoi (tapeaxsis11);

//ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈ 1//

while (tape1t

{

//ΠΏΡ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈ 0//

//UpdateData (false);

//CString mraxsis0_mr;

//mraxsis0_mr =itoa (posnum0_mr, mraxsis0_mr.GetBuffer (10), 10);

//this->m_pastcontrol.SetWindowText (««);

//CString tape1tstr;

//tape1tstr =itoa (tape1t, tape1tstr. GetBuffer (10), 10);

//this->m_past=tape1tstr;

tape1t++;

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

char ctrlkey=0×01;

char* ctrlkey2 = &ctrlkey;

sg.Send (ctrlkey2, 1);

int len=1;

char axsis0='0';

char* axsis02 = &axsis0;

sg.Send (axsis02, 1);

CString tp="tp" ;

char* LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send (ent2, 1);

Sleep (600); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

char buff1[128];

int rcv = sg. Recv (buff1, sizeof (buff1));

buff1[rcv]=0;

char* j = strchr (buff1, '+');

int res = atoi (j);

if (j==0)

{

j = strchr (buff1, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

CString mraxsis02; //сюда записываСтся Π·Π°Π½Ρ‡Π΅Π½ΠΈΠ΅ Π΅ ΠΎΠΊΠΎΡˆΠΊΠ° edit axsis0

GetDlgItemText (IDC_MRAXSIS0,mraxsis02);

posnum0=atoi (mraxsis02);

posnum0_mr=posicino00+posnum0/2; //пСрСмСщаСмся Π²ΠΏΠ΅Ρ€Π΅Π΄

CString mraxsis0_mr;

mraxsis0_mr =itoa (posnum0_mr, mraxsis0_mr.GetBuffer (10), 10);

//Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅//

CString mr="MA" ;

char* LocBuf8 = mr. GetBuffer (128);

sg.Send (LocBuf8, 2);

mr.ReleaseBuffer ();

len=mraxsis0_mr.GetLength ();

char* LocBuf9 = mraxsis0_mr.GetBuffer (128);

sg.Send (LocBuf9, len);

mraxsis0_mr.ReleaseBuffer ();//enter

sg.Send (ent2, 1);

gto0=posnum0_mr;

//считываниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π°//

CString inputfile;

GetDlgItemText (IDC_DATAEXCHANGE, inputfile);

CString outputfile;

GetDlgItemText (IDC_DATAEXCHANGE2, outputfile);

CString strinput;

CString stroutput;

CStdioFile FileInPut (inputfile, CFile: shareDenyNone);

CStdioFile FileOutPut (outputfile, CFile: modeCreate|CFile:modeNoTruncate|CFile:modeReadWrite|CFile:shareDenyNone);

FileInPut.SeekToEnd ();

int positionFileInPut1=FileInPut.GetPosition ();

//считываниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π°//

Sleep (300);

do

{

Sleep (400);

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

sg.Send (axsis02, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (800); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

CString str;

char buff[128];

rcv = sg. Recv (buff, sizeof (buff));

if (rcv > 0)

{

elmbuff=rcv-1;

buff[rcv]=0;

for (int i = 0; i< rcv; i++)

str += buff[i];

j = strchr (buff, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

}//ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ мСсто

modul=res-gto0;

if (modul<0) modul=-modul;

} while (modul>20);

//доТдСмся ΠΏΠΎΠΊΠ° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½ΠΎΡ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅//

//считываниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π°//

FileInPut.SeekToEnd ();

FileOutPut.SeekToEnd ();

int positionFileInPut2=FileInPut.GetPosition ();

FileInPut.Seek (positionFileInPut1, CFile: begin);

CString space=" «;

//char buffstr[128];

for (int positionFileInPutCurrent=FileInPut.GetPosition (); positionFileInPutCurrent

{

//FileOutPut.ReadString (stroutput);

FileInPut.ReadString (strinput);

char* buffstr = strinput. GetBuffer (128);

int lenstr=strinput.GetLength ();

buffstr[lenstr]=0;

char* j = strchr (buffstr, ',');

stroutput=j+1;

FileOutPut.WriteString (stroutput);

FileOutPut.WriteString (space);

}

//ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈ 1//

FileOutPut.WriteString («rn»);

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°//

sg.Send (ctrlkey2, 1);

len=1;

char axsis1='1';

char* axsis12 = &axsis1;

sg.Send (axsis12, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (300); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

char buff4[128];

rcv = sg. Recv (buff4, sizeof (buff4));

buff4[rcv]=0;

j = strchr (buff4, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff4, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

CString mraxsis12; //сюда записываСтся Π·Π°Π½Ρ‡Π΅Π½ΠΈΠ΅ Π΅ ΠΎΠΊΠΎΡˆΠΊΠ° edit axsis0

GetDlgItemText (IDC_MRAXSIS1,mraxsis12);

int posnum1=atoi (mraxsis12);

int posnum1_mr=pos01+tape1t*posnum1/tape1;

CString mraxsis1_mr;

mraxsis1_mr =itoa (posnum1_mr, mraxsis1_mr.GetBuffer (10), 10);

gto1=posnum1_mr;

//Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅//

mr="MA" ;

LocBuf8 = mr. GetBuffer (128);

sg.Send (LocBuf8, 2);

mr.ReleaseBuffer ();

len=mraxsis1_mr.GetLength ();

LocBuf9 = mraxsis1_mr.GetBuffer (128);

sg.Send (LocBuf9, len);

mraxsis1_mr.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (300);

do

{

Sleep (400);

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

len=1;

char axsis1='1';

char* axsis12 = &axsis1;

sg.Send (axsis12, 1);

sg.Send (ctrlkey2, 1);

sg.Send (axsis12, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (800); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

CString str;

char buff[128];

rcv = sg. Recv (buff, sizeof (buff));

if (rcv > 0)

{

elmbuff=rcv-1;

buff[rcv]=0;

for (int i = 0; i< rcv; i++)

str += buff[i];

j = strchr (buff, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

}//ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ мСсто

modul=res-gto1;

if (modul<0) modul=-modul;

} while (modul>20);

//ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅ΠΌ ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΡƒ Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅//

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°//

Sleep (300);

ctrlkey=0×01;

ctrlkey2 = &ctrlkey;

sg.Send (ctrlkey2, 1);

len=1;

axsis0='0';

axsis02 = &axsis0;

sg.Send (axsis02, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

ent=0x0D;

ent2 = &ent;

sg.Send (ent2, 1);

Sleep (300); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

charbuff7[128];

rcv = sg. Recv (buff7, sizeof (buff7));

elmbuff=rcv-1;

buff7[rcv]=0;

CStringstr7;

for (i = 0; i< rcv; i++)

str7 += buff7[i];

j = strchr (buff7, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff7, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

//сюда записываСтся Π·Π°Π½Ρ‡Π΅Π½ΠΈΠ΅ Π΅ ΠΎΠΊΠΎΡˆΠΊΠ° edit axsis0

GetDlgItemText (IDC_MRAXSIS0,mraxsis02);

posnum0=atoi (mraxsis02);

posnum0_mr=pos00; //пСрСмСщаСмся Π½Π°Π·Π°Π΄

mraxsis0_mr =itoa (posnum0_mr, mraxsis0_mr.GetBuffer (10), 10);

//Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

mr="MA" ;

LocBuf8 = mr. GetBuffer (128);

sg.Send (LocBuf8, 2);

mr.ReleaseBuffer ();

len=mraxsis0_mr.GetLength ();

LocBuf9 = mraxsis0_mr.GetBuffer (128);

sg.Send (LocBuf9, len);

mraxsis0_mr.ReleaseBuffer ();//enter

sg.Send (ent2, 1);

gto0=pos00;

Sleep (300);

do

{

Sleep (300);

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

sg.Send (axsis02, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (300); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

CString str8;

char buff8[128];

rcv = sg. Recv (buff8, sizeof (buff8));

if (rcv > 0)

{

elmbuff=rcv-1;

buff8[rcv]=0;

for (int i = 0; i< rcv; i++)

str8 += buff8[i];

j = strchr (buff8, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff8, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

}//ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ мСсто

modul=res-gto0;

if (modul<0) modul=-modul;

} while (modul>20);//доТдСмся ΠΏΠΎΠΊΠ° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½ΠΎΡ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅//

UpdateData (true);

//ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈ 1//

}

//Π²Π΅Ρ€Π½Π΅ΠΌ систСму Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½ΠΎΡ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅//

Tp0:

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

len=1;

axsis0='0';

axsis02 = &axsis0;

sg.Send (axsis02, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (300); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

posnum0_mr=posicino00;

mraxsis0_mr =itoa (posnum0_mr, mraxsis0_mr.GetBuffer (10), 10);

//Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

mr="MA" ;

char* LocBuf11 = mr. GetBuffer (128);

sg.Send (LocBuf11, 2);

mr.ReleaseBuffer ();

len=mraxsis0_mr.GetLength ();

char* LocBuf14 = mraxsis0_mr.GetBuffer (128);

sg.Send (LocBuf14, len);

mraxsis0_mr.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (200);

UpdateData (true);

gto0=posicino00;

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

Sleep (300);

char buff10[128];

rcv = sg. Recv (buff10, sizeof (buff10));

Tp1:

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

len=1;

axsis1='1';

axsis12 = &axsis1;

sg.Send (axsis12, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (300);

//ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

rcv = sg. Recv (buff10, sizeof (buff10));

posnum1_mr=posicino01;

mraxsis1_mr =itoa (posnum1_mr, mraxsis1_mr.GetBuffer (10), 10);

gto1=posicino01;

//Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

mr="MA" ;

LocBuf8 = mr. GetBuffer (128);

sg.Send (LocBuf8, 2);

mr.ReleaseBuffer ();

len=mraxsis1_mr.GetLength ();

LocBuf9 = mraxsis1_mr.GetBuffer (128);

sg.Send (LocBuf9, len);

mraxsis1_mr.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

UpdateData (true);

Sleep (130);

do

{

Sleep (300);

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

sg.Send (axsis02, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (300); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

CString str;

char buff[128];

rcv = sg. Recv (buff, sizeof (buff));

if (rcv > 0)

{

elmbuff=rcv-1;

buff[rcv]=0;

for (int i = 0; i< rcv; i++)

str += buff[i];

j = strchr (buff, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

}//ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ мСсто

modul=res-gto0;

if (modul<0) modul=-modul;

} while (modul>40);

do

{

Sleep (400);

//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΡ‚ΠΎΡ€Π°

sg.Send (ctrlkey2, 1);

sg.Send (axsis12, 1);

tp="tp" ;

LocBuf2 = tp. GetBuffer (128);

sg.Send (LocBuf2, 2);

tp.ReleaseBuffer ();

//enter

sg.Send (ent2, 1);

Sleep (300); //ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΡƒΠ·Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ успСл ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ

//считаСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ//

char buff[128];

rcv = sg. Recv (buff, sizeof (buff));

elmbuff=rcv-1;

buff[rcv]=0;

CString str;

for (int i = 0; i< rcv; i++)

str += buff[i];

j = strchr (buff, '+');

res = atoi (j);

if (j==0)

{

j = strchr (buff, '-');

res = atoi (j); //Π² res здСсь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}//ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° ΠΏΠΎΠ΄Π²ΠΈΠΆΠΊΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ мСсто

modul=res-gto1;

if (modul<0) modul=-modul;

}while (modul>20);

key=0;

}

Листинг SerialGate.dll

SerialGate.cpp:

#include «stdafx.h»

#include «SerialGate.h»

#include

#include

BOOL APIENTRY DllMain (HANDLE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

case DLL_THREAD_ATTACH:

case DLL_THREAD_DETACH:

case DLL_PROCESS_DETACH:

break;

}

return TRUE;

}

extern «C» __declspec (dllexport) bool SerialGate: Open (int port, int baud)

{

char COM_string[20];

sprintf (COM_string," \\.\COM%d", port);

m_hFile = CreateFile (COM_string, GENERIC_READ|GENERIC_WRITE, 0, NULL,

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

if (m_hFile == INVALID_HANDLE_VALUE)

{

return false;

}

DCB dcb;

GetCommState (m_hFile, &dcb);

COMMTIMEOUTS CommTimeOuts;

CommTimeOuts.ReadIntervalTimeout = MAXDWORD;

CommTimeOuts.ReadTotalTimeoutMultiplier = 0;

CommTimeOuts.ReadTotalTimeoutConstant = 0;

CommTimeOuts.WriteTotalTimeoutMultiplier = 0;

CommTimeOuts.WriteTotalTimeoutConstant = 1000;

SetCommTimeouts (m_hFile, &CommTimeOuts);

dcb.ByteSize = 8;

dcb.Parity = NOPARITY;

dcb.StopBits = ONESTOPBIT;

dcb.BaudRate = baud;

SetCommState (m_hFile, &dcb);

this->state = true;

return true;

}

extern «C» __declspec (dllexport) SerialGate: SerialGate ()

{

this->state = false;

}

extern «C» __declspec (dllexport) SerialGate:~SerialGate ()

{

this->Close ();

}

extern «C» __declspec (dllexport) void SerialGate: Close ()

{

this->state = false;

CloseHandle (m_hFile);

}

extern «C» __declspec (dllexport) void SerialGate: Clean ()

PURGE_RXCLEAR);

extern «C» __declspec (dllexport) int SerialGate: Send (char* buff, int szBuff)

{

if (!state)

return 0;

if (buff == NULL || szBuff <= 0)

{

return 0;

}

DWORD lpdwBytesWrittens = 0;

WriteFile (m_hFile, buff, szBuff, &lpdwBytesWrittens, NULL);

return lpdwBytesWrittens;

}

extern «C» __declspec (dllexport) int SerialGate: Recv (char* buff, int szBuff)

{

if (!state)

return 0;

if (buff == NULL || szBuff <= 0)

{

return 0;

}

DWORD dwBytesRead = 0;

ReadFile (m_hFile, buff, szBuff, &dwBytesRead, NULL);

return dwBytesRead;

}

extern «C» __declspec (dllexport) void SerialGate: SetLine (OUT_LINES_NAME ln, bool state)

{

if (!state)

return ;

unsigned char value;

if (ln == DTR)

{

if (state)

value = 6;

else

value = 5;

}

if (ln == RTS)

{

if (state)

value = 4;

else

value = 3;

}

EscapeCommFunction (m_hFile, value);

}

extern «C» __declspec (dllexport) bool SerialGate: GetLine (IN_LINES_NAME ln)

{

if (!state)

return 0;

unsigned long ul = 0;

GetCommModemStatus (m_hFile, &ul);

if (ul == 0×10 && ln == CTS)

{

return true;

}

if (ul == 0×20 && ln == DSR)

{

return true;

}

if (ul == 0×40 && ln == RING)

{

return true;

}

if (ul == 0×80 && ln == RLSD)

{

return true;

}

return false;

}

extern «C» __declspec (dllexport) void SerialGate: GetPortsInfo (PortInfo* pi)

{

DWORD Ports_MemSize = 0;

DWORD Ports_Count = 0;

BYTE* lpPorts = NULL;

//Getting Ports_MemSize value…

EnumPorts (NULL,

1,

lpPorts,

0,

&Ports_MemSize,

&Ports_Count);

//Getting lpPorts…

lpPorts = new BYTE[Ports_MemSize];

EnumPorts (NULL,

1,

lpPorts,

Ports_MemSize,

&Ports_MemSize,

&Ports_Count);

//Forming List Of Ports…

DWORD dw;

TCHAR str[8];

char temp[4];

int port = -1;

PORT_INFO1 *pPortInfo;

pPortInfo = (PORT_INFO1 *)lpPorts;

int counter = 0;

bool av = false;

for (dw = 0; dw < Ports_Count; dw++)

{

lstrcpyn (str, pPortInfo->pName, 4);

str[4] = 0;

if (lstrcmpi (str, «com») == 0)

{

//printf («%sn», pPortInfo->pName);

memset (temp, '', sizeof (temp));

temp[0] = pPortInfo->pName[3];

if (pPortInfo->pName[4]≠ ':' && pPortInfo->pName[4]≠ '')

temp[1] = pPortInfo->pName[4];

if (pPortInfo->pName[5]≠ ':' && pPortInfo->pName[5]≠ '')

temp[2] = pPortInfo->pName[5];

port = atoi (temp);

//printf («%dn», port);

char COM_string[20];

sprintf (COM_string," \\.\COM%d", port);

HANDLE h = CreateFile (COM_string, GENERIC_READ|GENERIC_WRITE, 0, NULL,

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

if (h == INVALID_HANDLE_VALUE)

{

//return false;

av = false;

}

else

{

av = true;

CloseHandle (h);

}

pi->p[counter]. Id = port;

pi->p[counter]. Availbl = av;

counter++;

}

pPortInfo++;

}

pi->koll = counter;

delete [] lpPorts;

}

Листинг SerialGate.dll

SerialGate.h:

#include

#define MAX_WIN_PORT 255

struct Port

{

unsigned char Id;

bool Availbl;

};

struct PortInfo

{

Port p[MAX_WIN_PORT];

unsigned char koll;

};

extern «C» class __declspec (dllexport) SerialGate

{

public:

enum IN_LINES_NAME {CTS, DSR, RING, RLSD};

enum OUT_LINES_NAME {DTR, RTS};

SerialGate ();

~SerialGate ();

bool Open (int port, int baud);

int Send (char* buff, int szBuff);

int Recv (char* buff, int szBuff);

void SetLine (OUT_LINES_NAME ln, bool state);

bool GetLine (IN_LINES_NAME ln);

void GetPortsInfo (PortInfo* pi);

void Close ();

void Clean ();

private:

HANDLE m_hFile;

bool state;

};

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