рдЧрд░реАрдм рдЕрд▓реЗрдХреНрдЬреЗрдВрдбреНрд░реЗрд╕реНрдХреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рдПрдХ рд╢рдмреНрдж рдХрд╣реВрдВрдЧрд╛

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


рд╕рдорд╕реНрдпрд╛


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

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

рдЗрд╕рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░, рдореИрдВрдиреЗ рд╕реНрдерд╛рдиреАрдп рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдпреЛрдЧреА рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдИрдВред рдФрд░ рдЗрд╕ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рд╡рд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рджреЛрдиреЛрдВ рдиреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - рд╕рдВрджреЗрд╢ рдореЗрдВ рдПрдХ рдирд┐рд╖рд┐рджреНрдз рдЪрд░рд┐рддреНрд░ рд╣реИ, рдЬреЛ рдкреИрдХреЗрдЯ рдХреА рд╢реБрд░реБрдЖрдд / рд╕рдорд╛рдкреНрддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИред

рдФрд░ рдЕрдм, рдЕрд▓реЗрдХреНрдЬреЗрдВрдбреНрд░реЗрд╕реНрдХреБ рдХреА рдЗрд╕ рдкреБрд╕реНрддрдХ рдиреЗ рдореЗрд░реА рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛ред рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рдШрдВрдЯреА рдмрдЬреА рдХрд┐ рдХреБрдЫ рдпрд╣рд╛рдБ рд╣рд▓рдЪрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ...

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдПрдХ рдПрдХрд▓ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдЗрд╕реА рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреА рднреМрддрд┐рдХ рдкреНрд░рдХреГрддрд┐ рдХреЛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдпреВрдПрд╕рдмреА, рдЗрдВрдЯрд░рдкреНрд░реЛрд╕реЗрд╕ рдПрдХреНрд╕рдЪреЗрдВрдЬ (рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдерд╛, рдореЗрдореЛрд░реА рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рд▓реЛрдХрд▓ рдПрд░рд┐рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ (рдкрд╛рдЗрдкреНрд╕ рдХрд╛ рдирд╛рдо), рдЧреНрд▓реЛрдмрд▓ рдПрдХреНрд╕рдЪреЗрдВрдЬ (рд╕реЙрдХреЗрдЯреНрд╕)ред рдореИрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдлрдВрдХреНрд╢рди рднреА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВ рднреА рдЪрд╛рд╣рддрд╛ рдерд╛ ...

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдгреЛрдВ (рдпрд╛ "рдиреАрддрд┐рдпреЛрдВ") рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛ:


рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдХреЗрд╡рд▓ рдкрд╣рд▓реА рджреЛ рдиреАрддрд┐рдпрд╛рдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ - рд╕рдВрдЪрд╛рд░ рдХреА рдкреНрд░рдХреГрддрд┐ рдФрд░ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ "рдЦрд╛рд▓реА" рдиреАрддрд┐ рд╣реИ - рдПрдХ рдРрд╕рд╛ рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

рдХреНрдпрд╛ рд╣реБрдЖ?


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрдВрдЯрд░рдХрдиреЗрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
template < typename Phys, // physical layer of connection - shared memory, USB, RS-232, LAN... typename Call, // call mode - function style, thread with events typename Prot = NoStrategy, // protection layer - protection based on critical sections, multiprocess protection etc. typename Log = NoStrategy, // logging mode - no logging (default), to file, to external process typename Timer = NoStrategy // timer mode - no timer (default), based on GetTickCount, high frequency timer, RDTSC > class InterConnect { protected: Phys _phys; Call _call; Prot _prot; Log _log; Timer _timer; // ... }; 


рдХрдХреНрд╖рд╛ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ, рдореИрдВ рд╣рдореЗрд╢рд╛ рдЬрд╛рдВрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╛рдЗрдЯ рд░рд╛рдЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
UPD - рдЕрдкрд╡рд╛рдж рдереЗ, рд╣рдЯрд╛рдП рдЧрдП

 template <typename Phys, typename Call, typename Prot, typename Log, typename Timer> bool InterConnectStorage<Phys,Call,Prot,Log,Timer>::send_byte (const unsigned char Val) { byte val; bool res = true; Prot::ProtectByte pr (_prot); // ... res &= _call.send (_phys, Val); // ... if (Log::to_use ()) { if (Timer::to_use ()) { _timer.stamp (); _log.send (Val, _timer.dprev (), _timer.dstart (), res); } else _log.send (Val, 0, 0, res); return res; } } 


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

рд╣рд░ рдЬрдЧрд╣ рдПрдХ рдЪреЗрдХ рд╣реИ - рдХреНрдпрд╛ рдпрд╣ рдкреЙрд▓рд┐рд╕реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ? рд╕реНрдереИрддрд┐рдХ рдХрд╛рд░реНрдп bool to_use (void) рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдпрд╣ рд╕реНрдерд┐рд░ рдФрд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд╕рдВрдХрд▓рдХ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдпрд╛ рддреЛ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рди рдмрдирд╛рдПрдВ (рдпрджрд┐ рдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдпрд╛ рддреБрд░рдВрдд рдЗрд╕реЗ рдмрд┐рдирд╛ рдЬрд╛рдВрдЪ рдХреЗ рдХреЙрд▓ рдХрд░реЗрдВред

рдирддреАрдЬрддрди, рдХрд╛рдлреА рдмреЛрдЭрд┐рд▓ рд╕реА ++ рдХреЛрдб рдХреЛрдбрд╛рдВрддрд░рдХ рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рдЗрд╖реНрдЯрддрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЗ рдЙрдкрдпреЛрдЧ


рдирддреАрдЬрддрди, рдореБрдЭреЗ рдПрдХ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдорд┐рд▓рд╛ рдЬреЛ рдмрд╣реБрдд рдХрдо рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рдЫреЛрдЯрд╛ USB рд╕рд╛рдЭрд╛рдХрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 typedef InterConnectStrat::FTDIAccess Phys; //   typedef InterConnectStrat::ThreadCall <Phys> Call; //   typedef InterConnectStrat::CritSectProtectPack Prot; //   typedef InterConnectStrat::NoStrategy Timer; //    #if defined (MakeLogFile) typedef InterConnectStrat::TabulatedASCIILogFile Log; //    File _log; //   #else typedef InterConnectStrat::NoStrategy Log; //    #endif InterConnectStorage <Phys, Call, Prot, Log, Timer> _con; //    


MakeLogFile рд╕реНрдерд┐рд░ рдХреЗ рд╕рд╛рде, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рддрд░реНрдХ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВред рдкреБрдирд░рд╛рд╡рд░реНрддрди, рдмреЗрд╢рдХ, рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рд╣реИ - рдЧрддрд┐ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВред

рдЗрд╕ рдХреЛрдб рдореЗрдВ, рд╕рдВрдХреБрд▓ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░рд╛рд▓ рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЯрд╛рдИрдкрдбреЗрдлрд╝ / * ... * / рдЯрд╛рдЗрдорд░ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ - рдФрд░ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд░рд╛рд╕реНрддреЗ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ USB рд╕реЗ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЛ рдЗрдВрдЯрд░рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рдПрдХ рджреВрд╕рд░рд╛ рдХрдВрд╕реЛрд▓ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рднреЗрдЬреЗ рдЧрдПред рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд╛рдИрдВ рдУрд░ рдмрд╛рдВрдзрд╛ред рдлрд┐рд░, рдлрд┐рд░ рд╕реЗ, рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрдбрд┐рдл рднреМрддрд┐рдХреА рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдПрдХ рд╕реНрдерд╛рди (рдЕрдзрд┐рдХрддрдо 5 рдкрдВрдХреНрддрд┐рдпреЛрдВ) рдореЗрдВ рд╕рдВрдЪрд╛рд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ - рдФрд░ рд╕рдм рдХреБрдЫ рдпреВрдПрд╕рдмреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ!

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

 // .   _con++; _con <<= SetProgramDate; _con <<= _HEX_date.get_Unix_time (); --_con; // .     _con++; _con <<= GotoProgram; --_con; 


рдХреЛрдб рдЕрдкрдиреЗ рд▓рд┐рдП рдмреЛрд▓рддрд╛ рд╣реИред

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

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

рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛


рдФрд░ рдЕрдм рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП, C ++ 9x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдореБрдЭреЗ рдХрдореЗрдВрдЯ рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдЪреВрдХ рдЧрдпрд╛:



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

рдкреАрдПрд╕ рдЕрд▓реЗрдХреНрдЬреЗрдВрдбреНрд░реЗрд╕реНрдХреБ - рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛, рдЬреЛ рдХреБрдЫ рднреА рдХрд╣реЗрдВрдЧреЗ!

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


All Articles