рдЗрдВрдЯрд░рдиреЗрдЯ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдбреЛрд░рд╣рд╛рди рдЬреАрдПрд╕рдПрдо рдмрд╛рдзрд╛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдВрд╢реЛрдзрди



рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдПрдХ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдЗрдорд╛рд░рдд рдореЗрдВ рдЬреАрдПрд╕рдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рдзрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд╛рд░рдг рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐, "рдореЗрд░реЗ рдШреБрдЯрдиреЗ рдкрд░" рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдпрд╛ред рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓рд╛рдареА рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛, рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рд╕реЗ рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдФрд░ рдПрдХ рд╕реНрдЯреНрд░реАрдЯ рдХреИрдорд░рд╛ рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХреЗ рдХреНрд╖рдгреЛрдВ рдХреА рддрд╕реНрд╡реАрд░реЗрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рдШрд░ рдкрд░ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реЛред

рдореИрдВ рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЗрдЦ рдмреЙрдХреНрд╕ рд╕реЗ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкреНрд░рдорд╛рдг рд╣реИред

рднрд╛рдЧ 1. рдРрд╕рд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреНрдпреЛрдВ


рдЬреАрдПрд╕рдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдХреБрдЫ рдмрд╛рдЬрд╛рд░ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЧрдИ рдереАред рдореИрдВ рдПрдХ рд╕рд╕реНрддрд╛, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рд╕рд┐рджреНрдз рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдареАрдХ рд╣реИ, рддрд╛рдХрд┐ "рдЗрдВрд╕реНрдЯреЙрд▓рд░реНрд╕" рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдереЗ, рдЙрдирдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреБрдЫ рдЕрдиреБрднрд╡ рдерд╛, рдЖрджрд┐ред

рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рд╛рде ~ 12000r рдХреЗ рд▓рд┐рдП ESIM 110/120 рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ USB рдХреЙрд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдПрдордПрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде ~ 6000r рдХреЗ рд▓рд┐рдП рдбреЛрд░рд╣рд╛рди рдЬреАрдПрд╕рдПрдоред

"$ 3 рдХреЗ рд▓рд┐рдП arduino + рдЬреАрдПрд╕рдПрдо рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЕрдкрдиреА рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдиреЗ" рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдХреЛрдИ рдШрд░ рдирд╣реАрдВ рдмреБрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ? рддрдм рдЖрдкрдХреЛ рд╕рднреА рдкрд░реЗрд╢рд╛рдирд┐рдпрд╛рдБ рдорд┐рд▓реЗрдВрдЧреАред

рдореИрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ рд╕реЗ рдЕрд▓реА рдкрд░ рдЪреАрди рдореЗрдВ рдПрдХ рдЙрдкрдХрд░рдг рдХреА рдЦрд░реАрдж рдХреЗ рд╕рд╛рде рд▓реЙрдЯрд░реА рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреАрдорддреЗрдВ 1500r рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред

ESIM120 рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ, рдПрдХреНрд╕ 2 рдХреА рд▓рд╛рдЧрдд рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреАрдкреАрдЖрд░рдПрд╕ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдкреНрд▓рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдореЛрдмрд╛рдЗрд▓ рд╕рдВрдЪрд╛рд░ рдХреА рд▓рд╛рдЧрдд рд▓рд╛рддрд╛ рд╣реИ - рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреИрд░рд┐рдл рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ред рдЕрдм, рдорд╛рд╕рд┐рдХ рд╢реБрд▓реНрдХ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЯреИрд░рд┐рдл рд╕рд┐рдо рдХрд╛рд░реНрдб рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рди 2-3 рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рджрд┐рди 2-3 рд░реВрдмрд▓ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рднреБрдЧрддрд╛рди рдХреА рдЧрдИ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдореМрд╕рдо", "рдЪреБрдЯрдХреБрд▓реЗ" рдпрд╛ рдмрд╛рдзрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ)

рдбреЛрд░рд╣рд╛рди рдЬреАрдПрд╕рдПрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдПрд╕рдПрдордПрд╕ (рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдпреВрдПрд╕рдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдкрдХреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рднрд╛рдЧ 2. рдЕрдЧреНрд░реЗрд╖рдг рдирд┐рдпрдВрддреНрд░рдг


рдЪреВрдВрдХрд┐ рдпрд╣ рдЙрд╕ рдХрдорд░реЗ рд╕реЗ 20 рдореАрдЯрд░ рдХреА рджреВрд░реА рдкрд░ рдмреИрд░рд┐рдпрд░ рдХрдВрдЯреНрд░реЛрд▓ рдпреВрдирд┐рдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рдЬрд╣рд╛рдВ рд╣реЛрдо рдЖрдИрдкреА рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд░ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рд╕рдВрдЪрд╛рд░ рдХреЗрдВрджреНрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рд░рд╛рдЙрдЯрд░ рдЬреИрд╕реЗ рдЯреАрдкреА-рд▓рд┐рдВрдХ MR302 рдореВрд▓реНрдп рдХреЗ 1200 рд░реБрдмрд▓, OpenWRT рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ USB рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ "рдирд┐рд░реНрдорд╛рдг" рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред USBIP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ

рдпрд╣ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рднреА рдирд┐рдХрд▓рд╛ - рдореБрдЭреЗ рдбрд┐рдмреНрдмреЗ рдореЗрдВ рдкреБрд░рд╛рдирд╛ ASUS WL500gP рдорд┐рд▓рд╛, рдЬреЛ рдЖрдЬ рдХреЗ рдорд╛рдирдХреЛрдВ рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ 2 рдпреВрдПрд╕рдмреА рдкреЛрд░реНрдЯ рд╣реИрдВред рдЙрд╕рдиреЗ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред

Usbip рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ OpenWRT рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 12 рд╕рд┐рддрдВрдмрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдирдП рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд░рд╛рдЙрдЯрд░ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреЛрд░реНрдЯ рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ, рдпреВрдкреАрдПрдирдкреА рдпрд╛ рдЖрдкрдХреЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╡реАрдкреАрдПрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

Kmod-usbip-server рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╣рдорд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

root@OpenWrt:~# opkg install kmod-usbip-server root@OpenWrt:~# usbip list -l Local USB devices ================= - busid 1-1 (0424:2502) 1-1:1.0 -> hub - busid 1-1.1 (1a86:7523) 1-1.1:1.0 -> ch341 

рд╣рдореЗрдВ рдПрдХ рд╡реНрдпрд╕реНрдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, 1-1.1 рдЬрд┐рд╕ рдкрд░ рд╣рдорд╛рд░рд╛ рдЬреБрдбрд╝рд╛ рдЬреАрдПрд╕рдПрдо рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрдерд┐рдд рд╣реИред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ CH341 рдЪрд┐рдк рдкрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп COM-> USB рдХрдирд╡рд░реНрдЯрд░ рд╣реИ

рд╣рдо рдмрд╛рд╣рд░ рд▓реЗ:

 root@OpenWrt:~#usbipd -D root@OpenWrt:~#usbip bind -b 1-1.1 bind device on busid 1-1.1: complete 

рдФрд░ dmesg рдореЗрдВ

  usbip-host 1-1.1:1.0: usbip-host: register new device (bus 1 dev 57 ifn 0) 

рд╡рд┐рдВрдбреЛрдЬ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, USBIP рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ

 usbip -a 10.16.19.19 1-1.1 

рдЬрд╣рд╛рдВ 10.16.19.19 OpenWRT рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЖрдИрдкреА-рдкрддрд╛ред рдмреЗрд╢рдХ, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдлрд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдЕрдкрдиреЗ рдЖрдИрдкреА рд╕реЗ рд░рд╛рдЙрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рд╡реАрдкреАрдПрди рд╕реЗ рдкреА 2 рдкреА рдореЗрдВ 1000 рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреАред

рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдЦреБрд╢реА рд╕реЗ рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рдпреВрдПрд╕рдмреА-рдЯреВ-рд╕реАрд░рд┐рдпрд▓ рдХрдиреНрд╡рд░реНрдЯрд░ CH340 рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ COM рдкреЛрд░реНрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рдЕрдм рд╣рдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдХрд┐рдЯ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рдЙрдЪ рдкрд░ рдШрд░ рдмреИрдареЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирдВрдмрд░реЛрдВ рдХреЛ рдореИрдиреЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ



рднрд╛рдЧ 3. рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг


рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдШрд░ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирдВрдмрд░реЛрдВ рдкрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╕реЗрдЯ рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ COM рдкреЛрд░реНрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЬреАрдПрд╕рдПрдо-рдореЙрдбреНрдпреВрд▓ рд╕рдордп-рд╕рдордп рдкрд░ рдПрдЯреА рд╕реНрддрд░ рдХреЛ рд╕рд┐рдЧреНрдирд▓ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рдХрдВрд╕реЛрд▓ рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдлреЛрди рдирдВрдмрд░ рднреА рд▓рд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдЯреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рд╡реЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдореЙрдбреЗрдо рдореЙрдбреНрдпреВрд▓ рддрдХ рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред



рдпрд╣ рд╡реИрд╕реЗ рднреА рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЬреАрдПрд╕рдПрдо-рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдпреЗ рдХреЙрд▓ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдХреЛрдИ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбреНрд░рд┐рд▓рдбрд╛рдЙрди рдореЗрдВ рдХреЛрдИ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реИред рдЕрдм рдЖрдк рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рд╕реАрдзреЗ рдЙрд╕ рдПрдХ рдХреЗ рд▓реЙрдЧ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдиреЗ рдЕрд╡рд░реЛрдз рдЦреЛрд▓рд╛ред рдпрд╛ рдЬрд┐рд╕рдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, OpenWRT рдкрд░ kmod-usb-serial-ch341 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, usbip unbind -b 1-1.1 рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде USBIP рдЕрдиреБрд╡рд╛рдж рдмрдВрдж рдХрд░реЗрдВ рдФрд░ insmod ch341 рдХрд░реЗрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рд░рд╛рдЙрдЯрд░ рдкрд░ рд╕рд╣реА, рдЖрдк / dev / ttyUSB0 рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдереА рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдмрдЪрдд рдХреЗ рд▓рд┐рдП PHP рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд╣рд░реА рд╕рд░реНрд╡рд░ рдХреЛ рдЖрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рдереАред рдЖрдк рдЙрд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд░рд╛рдЙрдЯрд░ рдкрд░ рдореЗрдореЛрд░реА рдореЛрдЯреА рдирд╣реАрдВ рд╣реИред

 #!/bin/sh cat /dev/ttyUSB0 | while read DATA; do if echo $DATA | grep -q CLIP ; then curl --silent --output /dev/null --data "data=$DATA" http://1.2.3.4:8081/border.php fi done 

рд╕рд░реНрд╡рд░ рдкрд░, рдореИрдВрдиреЗ mysql рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдХреБрдЫ рдкреНрд▓реЗрдЯреНрд╕ рдмрдирд╛рдИрдВ: рд╣рдорд╛рд░реЗ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЗ рдлреЛрди рдирдВрдмрд░ рдФрд░ рдХреЙрд▓ рд▓реЙрдЧ рдХреЗ рд╕рд╛рдеред рдпрд╣ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдХрд┐рд╕рдиреЗ рдХрд┐рд╕ рд╕рдордп рдмрд╛рдзрд╛ рдХреЛ рдЦреЛрд▓рд╛, рдФрд░ рдХреНрдпрд╛ рд╡реЗ рдЕрдЬреНрдЮрд╛рдд рдирдВрдмрд░реЛрдВ рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдЪреАрдиреА рд░рдЬрд┐рд╕реНрдЯреНрд░рд╛рд░ рд╕реЗ jpeg рдХреИрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдИ рдХреИрдорд░реЛрдВ рдореЗрдВ рдПрдХ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди URL рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╣реЗрдб-рдСрди рд╣реЛ рдЧрдпрд╛ - рдХреЙрд▓ рдХреЗ рд╕рдордп рдореБрдЭреЗ рдЖрд░рдЯреАрдПрд╕рдкреА рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рд╕реЗ рдЬреЗрдкреАрдЬреА рдмрдирд╛рддрд╛ рд╣реИред

 ffmpeg -i "rtsp://2.3.4.5:554/user=user&password=password&channel=1&stream=0.sdp?" -y -f image2 -t 0.001 -ss 00:00:3 -s 1280*720 /tmp/screenshot.jpg 

рдЙрд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде, mp4 рдореЗрдВ рдЫреЛрдЯреА рдХреНрд▓рд┐рдк рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ред
рдлрд╝реЛрдЯреЛ рдиреЗ MySQL рдореЗрдВ blobs рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╛рдзрд╛рди рддреЛ рдРрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ "рдЦреАрдВрдЪрдирд╛" рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рдм рдХреБрдЫ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реИред рдФрд░ рдЙрд╕ рдкрд░ рднрд╛рд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рд╣реИред

рдирддреАрдЬрддрди, рдкреНрд░рд╡реЗрд╢ рд▓реЙрдЧ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рднрд╛рдЧ 4. рд╕рд╛рдЗрдЯ рдкрд░ SQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд▓реЛрдб рд╣реЛ рд░рд╣реЗ рдирдВрдмрд░


рдпрджрд┐ рдЖрдк рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд╛рдЙрдЯрд░ рдХрд╛ рдпреВрдПрд╕рдмреА рдкреЛрд░реНрдЯ рд╕реАрд░рд┐рдпрд▓-рдЯреВ-рдпреВрдПрд╕рдмреА рдХрдирд╡рд░реНрдЯрд░ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдЕрдВрджрд░ рдирдВрдмрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЗрд╕реЗ USBIP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рд╣реЛрдо рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ "рдкреБрд╢" рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ unbind / bind рдХрд░рдирд╛ рдерд╛ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдкрдиреЗ рдШрд░ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ usbip рдХрдВрд╕реЛрд▓ рднреА рдЪрд▓рд╛рдирд╛ рдерд╛ред рдареАрдХ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдШрд░ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдлрд┐рд░ рд╕реЗ, рдЖрд░рдбреАрдкреА / рд╡реАрдкреАрдПрди, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдФрд░ рдЖрдЧреЗ), рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рд╕реЗ рдирд╣реАрдВред рдпрд╣ рджреЛрдЧреБрдирд╛ рдЧрд░реНрдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ mdb рдкреНрд░рд╛рд░реВрдк (рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХреНрд╕реЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рд╡реЗрдм рд╕рдВрд╕реНрдХрд░рдг рджреЛрдиреЛрдВ рдореЗрдВ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рдирд╛ рдерд╛ред

рдбреЛрд░рд╣рд╛рди рдЬреАрдПрд╕рдПрдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдПрдХ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ googling рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдбреЛрд░рд╣рд╛рди рдХреЗ рдмреНрд░рд╛рдВрдб рдХреЗ рддрд╣рдд рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪреАрдиреА рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ COM рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдирд┐рдЯрд░ (рд╕реНрдирд┐рдлрд░) рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рд╕рд╢рд╕реНрддреНрд░ рдХрд┐рдпрд╛ рдФрд░ рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрдИ рдбрдВрдк рд▓рд┐рдПред



рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓рд╛:
рдореЗрдореЛрд░реА aa 02 09 00 00 03 e8 01 00 00 00 00 ee рдХрдорд╛рдВрдб aa 02 09 00 00 03 e8 01 00 00 00 00 ee
рдЬрд╡рд╛рдм рдпрд╣ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЖрдпрд╛ aa 20 00 ee
рдПрдХ рдирдВрдмрд░ +79999999999 рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЯреАрдо
aa 03 10 00 01 2b 37 39 39 39 39 39 39 39 39 39 39 00 00 ee

рдЬрд┐рд╕рд╕реЗ рдЙрд╕рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗ:
AA рднреЗрдЬрдиреЗ рдХреА рд╢реБрд░реБрдЖрдд, EE рднреЗрдЬрдиреЗ рдХрд╛ рдЕрдВрдд
рдЬрд╡рд╛рдм рд╣реИ рдХрд┐ рдЯреАрдо рдХреЛ 20 00 рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
03 рдирдВрдмрд░ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдХрдорд╛рдВрдбред рдлрд┐рд░ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдирдВрдмрд░ рдЖрддрд╛ рд╣реИред рдпрд╣ 1 рд╕реЗ 5 рддрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛рдиреА рдПрдХ рдкрд╛рд░реНрд╕рд▓ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рдирдВрдмрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╛рд░реНрд╕рд▓ рдХреЛ EE рдХрдорд╛рдВрдб рд╕реЗ рдЦрддреНрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддрд┐ рдмреНрд▓реЙрдХ рдПрдХ рдкреБрд╖реНрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдЖрджреЗрд╢ рдХреЗ рдмрд╛рдж, 2 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ (рджреВрд╕рд░рд╛ рдПрдХ рд╕рдЯреАрдХ рд╣реИ, рдкрд╣рд▓реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрднрд╡рддрдГ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 256 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рдЧрдИ) рд╕реЗрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдк рдЦрд╛рд▓реА рдореЗрдореЛрд░реА рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдпрд╣ 1 рд╣реИ, рдлрд┐рд░ 2, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЙрд╕рдХреЗ рдмрд╛рдж рдлреЛрди рдирдВрдмрд░ рдХреЗ 14 рдмрд╛рдЗрдЯреНрд╕ рдЖрддреЗ рд╣реИрдВред рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░реА рд╕рдВрдЦреНрдпрд╛рдПрдБ 12 рдмрд╛рдЗрдЯреНрд╕ (+79999999999) рдореЗрдВ "рд╢рд╛рдорд┐рд▓" рд╣реИрдВ, рдЕрдВрддрд┐рдо 2 рдмрд╛рдЗрдЯ рдЬрд╝реАрд░реЛ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬреЗ рдореЗрдВ рд╣реИрдВред рд╕рдВрднрд╡рддрдГ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рдЬреИрд╕реЗ +10 рдХреЗ рд▓рд┐рдПред рдпрд╣ рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред

рдмрд╛рдЗрдЯ рдИрдИ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрдирд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рд╕реЗрд▓ рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ 10 рдирдВрдмрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдореЗрдореЛрд░реА рдХреЛ рдХреНрд▓рд┐рдпрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдХрдорд╛рдВрдб "рд╕реЗрд▓ 5 рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦреЗрдВ" рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдпрдВрддреНрд░рдг рдШрдЯрд╛рд╡ рдХреЗ рдмрд╛рдж рдЗрд╕ рд╕реЗрд▓ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧреА, рд▓реЗрдХрд┐рди рдирд┐рдпрдВрддреНрд░рдХ 11 рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдЧрд╛, рдФрд░ 11 рд╡рд╛рдВ рдЦрд╛рд▓реА рд╣реЛрдЧрд╛ред рдФрд░ рдпрджрд┐ рдЖрдк рдХрдорд╛рдВрдб "рд╕реЗрд▓ 11 рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦреЗрдВ" рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕рдВрднрд╡рддрдГ ADD рдФрд░ REPLACE (рдРрдб рдПрдВрдб рдЪреЗрдВрдЬ) рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдЬрд┐рд╕реЗ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореВрд▓ рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд┐рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕реВрдЪреА рдХрд╛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛, рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд░реЗрдЬрд╝ рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░рд╛рдЗрдЯ рдХрдорд╛рдВрдб рдХреЛ рдПрдХ рдирдВрдмрд░ (рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП) рднреЗрдЬрдХрд░ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдпрд╛ред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд┐рдЦрдиреЗ рдЖрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯ рд░рд╛рдЙрдЯрд░ рдореЗрдВ рд╣реИ, рдФрд░ рдПрдХ рдмрд╛рд╣рд░реА рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ред рдмреЗрд╢рдХ, рдЖрдк рдЗрд╕реЗ рд░рд╛рдЙрдЯрд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрдкрдХреЛ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рдерд╛ред рдореИрдВ рджреВрд╕рд░реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ - рдореИрдВрдиреЗ tcp рдкрд░ Ser2net рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ / dev / ttyUSB0 рдлреЗрдВрдХ рджрд┐рдпрд╛, рдЬреЛ рдУрдкрдирд░рдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИред

Config /etc/ser2net.conf рдЕрдирд┐рд░реНрдгрдп рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ

 3333:raw:0:/dev/ttyUSB0:9600,remctl 

рд╕реЗрд░рдиреЗрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдкреЛрд░реНрдЯ 3333 рдкрд░ рдЯреЗрд▓рдиреЗрдЯ рд░рд╛рдЙрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рд░рд╛рдЙрдЯрд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмрд┐рд▓реНрд▓реА / рджреЗрд╡ / ttyUSB0 рдиреЗ рдЕрдЪрд╛рдирдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣реА рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХрдВрд╕реЛрд▓ рдХреЛ рдХрдЪрд░рд╛ рд▓рд┐рдЦрд╛ред рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рд░рд╛рдЙрдЯрд░ рдкрд░ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рджреМрд░рд╛рди рдореИрдВрдиреЗ рдорд┐рдирд┐рдХреЙрдо рдЪрд▓рд╛рдпрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ рд╕рдВрднрд╡рддрдГ рдкреЛрд░реНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд┐рдпрд╛ рдерд╛ред рдмрд╕ рдореЛрдб рдХреА рд╕реНрдерд╛рдкрдирд╛ реп ремрежреж the рдПрди рез рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рдкреЛрд░реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ "рд╡рд░реНрдХрд┐рдВрдЧ" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ рдФрд░ рдЖрд░.рд▓реЛрдХрд▓ рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рджрд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИ

 stty -F /dev/ttyUSB0 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke 

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдЕрддрд┐рд╢реНрдпреЛрдХреНрддрд┐рдкреВрд░реНрдг, рдкрд╛рдардХ рдЗрд╕реЗ рд╕рдВрднрд╡рддрдГ рд╕рд╣реА рдХрд░реЗрдВрдЧреЗред рдареАрдХ рд╣реИ, рдпрджрд┐ рдЖрдк ser2net.conf рдореЗрдВ рдкреЛрд░реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд░рд╛рдЙрдЯрд░ рдкрд░ рд╕реНрдЯрд┐рдХ рдкреИрдХреЗрдЯ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддреЗред

рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рдЗрди рдЬреЛрдбрд╝рддреЛрдбрд╝реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдпрдВрддреНрд░рдХ рдХрдВрд╕реЛрд▓ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЙрд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВрдЧреЗред рдореИрдВрдиреЗ PHP рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣ рд╕рднреА рдХреЛрдб рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ (рдореИрдВ рдЕрдВрдд рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реВрдВ, рдореИрдВрдиреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдЖрд╡реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ:

  $re = '/CLIP: ".(7\d{10})"/m'; //    while (1) { $f=@fsockopen('tcp://10.16.19.19',3333, $errno, $errstr); //   while ($f && $str=fread($f, 100)) { $test=preg_match($re, $str, $matches); if ($test) process_call($matches[1]); // ,       //           ,  ,   $f sync_phones($f); } if ($f) fclose($f); //-    sleep(5); // 5     } 

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд▓реЛрдЧ process_call рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрдиреЗ рд╕реЗ рд▓реЗрдХрд░, рдПрдХ рдлреЛрдЯреЛ / рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рдиреЗ рдФрд░ рдПрдХ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдкрддрд┐ / рдкрддреНрдиреА рдХреЗ рдлреЛрди рдкрд░ рднреЗрдЬрдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рдХреЙрдлреА рдирд┐рд░реНрдорд╛рддрд╛ рдпрд╛ рдмреЛрд░рд╢ рд╡рд╛рд░реНрдо рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреАрдо рдХреЗ рд▓рд┐рдПред

рдореИрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рд┐рдВрдХ_рдлрд╝реЛрди рдкрд░ рд░рд╣реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЛрд░рд╣рд╛рди рдЬреАрдПрд╕рдПрдо-рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ "рдЧреИрд░-рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ" рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╣рд╛рдБ, рдереЛрдбрд╝рд╛ рд╕рд╛ рдЪреЗрд╣рд░рд╛, рдореИрдВрдиреЗ рдкреЛрджреЛ рдпрд╛ рдорд┐рд╕реНрдХреНрд▓реА рдХреЗ рдмрдЬрд╛рдп рдорд╕реНрдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

 function sync_phones($f) { /*   config   update.   -  val=1,        .     ,       mysql,     */ $result=mysql_query("SELECT * FROM config WHERE name='update' AND val=1"); if (mysql_num_rows($result)==0) return; $init = pack('H*','aa1100ee'); //-        $clear = pack('H*','aa0209000003e80100000000ee'); //    (   -) $logfile=fopen("/tmp/border.log","a"); fwrite($logfile,"Update started at ".date('Ymd H:i:s')."\n"); fwrite($f,$init); sleep(1); $ans=fread($f, 40); fwrite($logfile,"Send init. Answer ".bin2hex ( $ans )."\n"); fwrite($f,$clear); sleep(1); $ans=fread($f, 40); fwrite($logfile,"Send clear. Answer ".bin2hex ( $ans )."\n"); $result=mysql_query("SELECT * FROM phones ORDER BY pid"); //  , select     ,      $n=1; while($row=mysql_fetch_array($result)) { $start = 'aa0310'; $pos = sprintf("%04x",$n); $phone = bin2hex('+'.$row['phone']).'0000'; $end = 'ee'; // "" $send=$start.$pos.$phone.$end; $bin=pack('H*',$send); fwrite($f,$bin); $ans=fread($f, 40); fwrite($logfile,"Write {$n} phone {$row['phone']}. Answer ".bin2hex ( $ans )."\n"); $n++; } fwrite($logfile,"End update\n"); fclose($logfile); //   "" ,   ,  .   ,     mysql_query("UPDATE config SET val=0,result='".bin2hex ( $ans )."',updated=NOW() WHERE name='update'"); } ?> 

рднрд╛рдЧ 5. рдирд┐рд╖реНрдХрд░реНрд╖


рдирддреАрдЬрддрди, рдореИрдВрдиреЗ рдЕрд╡рд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ (рд▓рд┐рдЦрд╛), рдЬрд╣рд╛рдВ рдореИрдВ рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд╡рд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдШрд░ рдХреЗ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝ / рд╣рдЯрд╛ / рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдиреЛрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ, рдирд╛рдо, рдлреЛрди рдирдВрдмрд░, рдХрд╛рд░ рдирдВрдмрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред рдПрдХ рдХрд╛рд░ рдХреА рддрд╕реНрд╡реАрд░реЗрдВ рд╣реИрдВ, рдПрдХ рдлреЛрдЯреЛ рдХреЗ рд╕рд╛рде рдмрд╛рдзрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд▓реЙрдЧред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд▓реЙрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдмрд╛рдзрд╛ рдкрд░ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рднрд╛рд░ рдХреМрди рдмрдирд╛рддрд╛ рд╣реИ - рд╡рд╣ рдорд░рдореНрдордд рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░реЗрдЧрд╛ :)

рдЦреИрд░, рдШрд░ рдХреЗ рдкрд╛рд╕ рдкрд╛рд░реНрдХрд┐рдВрдЧ рдореЗрдВ рдмреЛрдирд╕ рдПрдХ рд╡рд╛рдИрдлрд╝рд╛рдИ рдмрд┐рдВрджреБ рдерд╛ред

рдореБрджреНрджрд╛ рдореВрд▓реНрдп 0 рд░реВрдмрд▓ рд╣реИ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рджрд┐рди рдмрдВрджред

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


All Articles