рдЦрд░реАрджрд╛рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖

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


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


@ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рджрд░реНрд╢рди | рдХреЗрдВрджреНрд░ | 700x0


@ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 2 | рдХреЗрдВрджреНрд░ | 300x0


рдЖрд╡рд╢реНрдпрдХ рдЯрд┐рдкреНрдкрдгреА


рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд▓рд┐рдирдХреНрд╕ рдУрдПрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред

рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдкрд╛рда рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдиреИрдиреЛ рдФрд░ mcedit рд╕рдВрдкрд╛рджрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рд╡рд┐рдВрдбреЛрдЬ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдУрдПрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдорд┐рдиреА-рдкреАрд╕реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрд╕рдПрд╕рдПрдЪ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреВрд░рд╕реНрде рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - рдХрд┐рдЯреА / рдкреБрдЯреАред
рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рдмреАрдЪ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ WinSCP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

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

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

рдЖрдкрдиреЗ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛?


  • рд░рд╛рд╕реНрдкрдмреЗрд░реА рдЬреАрдПрдирдпреВ / рд▓рд┐рдирдХреНрд╕ 9.4 (рдЦрд┐рдВрдЪрд╛рд╡) рд╕реНрдерд╛рдкрд┐рдд рдХреЗ рд╕рд╛рде рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 2 рдореЙрдбрд▓ рдмреА v1.1 рдПрдХрд▓ рдмреЛрд░реНрдб рдХрдВрдкреНрдпреВрдЯрд░ред
  • рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рджрд░реНрд╢рди POSUA LPOS-VFD USBред
  • рдмреИрд╢ рдЦреЛрд▓

рдкрд╣рд▓рд╛ рдЪрд░рдгред рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рджрд░реНрд╢рди рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рд╕реЗрдЯ рдХрд░реЗрдВ


рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдбрд┐рд╕реНрдкреНрд▓реЗ (DP) рдХреЛ USB рдкреЛрд░реНрдЯ рд╕реЗ рдЕрдЯреИрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗред рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:


usb-devices 

рд░рд╛рд╕реНрдкрдмреЗрд░реА рд╕реЗ рд╕рдВрд▓рдЧреНрди USB рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:


 T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev=04.14 S: Manufacturer=Linux 4.14.69-v7+ dwc_otg_hcd S: Product=DWC OTG Controller S: SerialNumber=3f980000.usb C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 5 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=02 MxPS=64 #Cfgs= 1 P: Vendor=0424 ProdID=9514 Rev=02.00 C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=2mA I: If#= 0 Alt= 1 #EPs= 1 Cls=09(hub ) Sub=00 Prot=02 Driver=hub T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0424 ProdID=ec00 Rev=02.00 C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=2mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff Driver=smsc95xx T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 4 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0131 Rev=01.00 S: Manufacturer=www.posua.com S: Product=POSua LPOS-II-VFD USB CDC C: #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=16mA I: If#= 0 Alt= 0 #EPs= 3 Cls=02(commc) Sub=02 Prot=01 Driver=usbserial_generic I: If#= 1 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid 

рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рд╣рдореЗрдВ рд▓рд╛рдЗрди рдЙрддреНрдкрд╛рдж = POSua LPOS-II-VFD USB CDC рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рд╣рдорд╛рд░рд╛ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рджрд░реНрд╢рди рд╣реИред рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдореЗрдВ рд▓рд╛рдЗрди рд╡рд┐рдХреНрд░реЗрддрд╛ = 0000 ProdID = 0131 Rev = 01.00 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХреНрд░реЗрддрд╛ = 0000 prodID = 0131 ред рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдЦреБрдж рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИред


рдбреАрдкреА рдХреЗ рд╕рд╛рде рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдпреВрдПрд╕рдмреА рд╕рдВрдЪрд╛рд▓рди рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛрд░ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрдиреНрдирдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:


 sudo modprobe usbserial vendor=0x0000 product=0x0131 

modprobe рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИред usbserial рдПрдХ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ USB рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ COM рдкреЛрд░реНрдЯ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред 0x - рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдкреНрд░рд╛рд░реВрдкред


рдЪреВрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ USB рдбрд┐рд╡рд╛рдЗрд╕ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдПрдХ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ ttyUSB0 рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред рдбрд┐рд╡рд╛рдЗрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ /dev рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдбреАрдкреА рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рджрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:


 stty -F /dev/ttyUSB0 9600 

stty - рдХрдорд╛рдВрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред -F рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЦрд░реАрджрд╛рд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди /dev/ttyUSB0 ред рдФрд░ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП, 9600 рдмреЙрдб рдХреА рдЧрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред


рдЕрдм рдЖрдк рдПрдХ рд╕реНрд╡рд╛рдЧрдд рд╕рдВрджреЗрд╢ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЕрдм рддрдХ) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 echo "Hello!" > /dev/ttyUSB0 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╣рдорд╛рд░рд╛ рд╕рдВрджреЗрд╢ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдиреАрдЪреЗ рдЯреАрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред


2 рдЪрд░рдгред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ


рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдордиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕реНрдкреНрд▓реИрд╢ рд╕реНрдХреНрд░реАрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ред рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИред


рдкреНрд░рджрд░реНрд╢рди рд╕реНрдХреНрд░реАрди рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:


 echo -e -n "\x0c\x0b" > /dev/ttyUSB0 

echo - рдЯрд░реНрдорд┐рдирд▓ рдЖрдЙрдЯрдкреБрдЯ рдХрдорд╛рдВрдбред рд╡рд┐рдХрд▓реНрдк -e - рдПрд╕реНрдХреЗрдк рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, -n - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓рд╛рдЗрди рдлреАрдб рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред -en рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред


рдПрдХ рдЕрдХреНрд╖рд░ рдпрд╛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдмрд╛рдж рдПрдХ рдмреИрдХрд╕реНрд▓реИрд╢ \ _ рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЛ рдПрд╕реНрдХреЗрдк рд╕реАрдХреНрд╡реЗрдВрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

0 - рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдХреНрд░реАрди рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓рд╛рдЗрди рдореЛрдб рдХреЛ рд░рджреНрдж рдХрд░рддрд╛ рд╣реИ, 0b - рдХрд░реНрд╕рд░ рдХреЛ рдКрдкрд░реА рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреАрдХ > - рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг (рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдлрд╝рд╛рдЗрд▓ / dev / ttyUSB0 ред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ echo "Hello!" , рдлрд┐рд░ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╕рдВрдХреЗрддрд┐рдд рдкрд╛рда рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред


рд╡реИрд╕реЗ, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:


 stty 9600 < /dev/ttyUSB0 

рдареАрдХ рд╣реИ, рд░реВрд╕реА рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:


 echo -n "!" | iconv -f UTF-8 -t CP866 > /dev/ttyUSB0 

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


рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдкрд╛рда рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рджрд╛ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рд╣реИред

рдмреИрд╢ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ "рдЙрд╕рдХрд╛" рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ #! / рдмрд┐рди / рдмреИрд╢ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


 sudo chmod u+x namefile.sh 

рдЬрд╣рд╛рдВ namefile.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╛рдЗрд▓ рд╣реИред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╢ - рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИред chmod рдлрд╛рдЗрд▓реЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИред u+x - рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред


рд╣рдо рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗред рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореБрдЦреНрдп рдПрдХ ( dispos.sh ) рд╣реИред рдпрд╣ рдЦрд░реАрджрд╛рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ - рд╕рд╣рд╛рдпрдХ ( parse.sh ) рдореМрд╕рдо рдбреЗрдЯрд╛, рдореБрджреНрд░рд╛ рдЙрджреНрдзрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


 sudo chmod +x dispos.sh sudo chmod +x parse.sh 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмрд╕ +x ред рдпрд╣ u+x рдХрд╛ рдЫреЛрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред


рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдорд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ crontab рдЕрдиреБрд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:


 crontab -e 

рдЕрдиреБрд╕реВрдЪрдХ рдореЗрдВ рджреЛ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:


 */20 * * * * /home/pi/parse.sh */1 * * * * /home/pi/dispos.sh 

Parse.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рд░ 20 рдорд┐рдирдЯ рдкрд░ рдЪрд▓рддреА рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдорд┐рдирдЯ рдореЗрдВ dispos.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯред


рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдкрд╛рд░реНрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ , рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХ рдореМрд╕рдо рдФрд░ рдореБрджреНрд░рд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред


 ./parse.sh 

рдЖрдЧреЗ, рдореИрдВ рдЫреЛрдЯреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реА рдкрдЯрдХрдерд╛ рджреВрдВрдЧрд╛ред


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг


Dispos.sh рдлрд╝рд╛рдЗрд▓


dispos.sh рдлрд╝рд╛рдЗрд▓
 #!/bin/bash #        POSua LPOS-VFD. # -  ttyUSB0. #     tty  : # modprobe usbserial vendor=0x0000 product=0x0131. #  0x0000  0x0131  ,   # usb-devices, lsusb  dmesg. #    stty 9600 < /dev/ttyUSB0. #          parse.sh #     crontab      . # **************************************************************** #   # ttyUSB -      (POS-) DEV_DISPLAY="/dev/ttyUSB0" #        #   ,  ,   18:00:00 #    17:00:00 TIME_OF_WORKDAY="18:00:00" if (( $(date "+%u") >= 5 )); then TIME_OF_WORKDAY="17:00:00" fi #      ( 17:00:00) #      DAY_OF_WEEKEND=`date +"%s" --date="friday 17:00:00"` # **************************************************************** #       #    disp_clear(){ echo -en "\x0c\x0b" > "${DEV_DISPLAY}" } #       disp_cr(){ echo -e "\x0b" > "${DEV_DISPLAY}" } #       disp_print(){ echo -n $1 | iconv -f UTF-8 -t CP866 > "${DEV_DISPLAY}" } # **************************************************************** #    # 1.    disp_clear #   disp_print ": `date "+%A"`" disp_cr #     disp_print " `date "+%d.%m.%Y %H:%M"`" sleep 8 # **************************************************************** # 2.       disp_clear disp_print "   . :" disp_cr HOURS=$(( ( $(date +%s --date=$TIME_OF_WORKDAY) - $(date +%s) ) / 3600 )) MINUTES=$(( (( $(date +%s --date=$TIME_OF_WORKDAY) - $(date +%s) ) - $HOURS * 3600) / 60 )) #       if (( $MINUTES > -1 )); then OUTPUT_TIME=" ${HOURS} . ${MINUTES} ." else OUTPUT_TIME=" !" fi #       disp_print "${OUTPUT_TIME}" sleep 8 # **************************************************************** # 3.       disp_clear disp_print "  . :" disp_cr DAYS=$(( ($DAY_OF_WEEKEND-$(date +%s)) / (24*3600) )) HOURS=$(( (($DAY_OF_WEEKEND-$(date +%s)) - ($DAYS*24*3600)) / 3600 )) MINUTES=$(( (($DAY_OF_WEEKEND-$(date +%s)) - ($DAYS*24*3600) - ($HOURS*60*60)) / 60 )) #       if (( $MINUTES > -1 )); then OUTPUT_TIME="${DAYS} . ${HOURS} . ${MINUTES} " else OUTPUT_TIME=" !" fi #       disp_print "${OUTPUT_TIME}" sleep 8 # **************************************************************** # 4.     # 4.1.      LINE1=$(sed -n '1{p;q}' /tmp/weather.txt) DISPLAY_LINE1=${LINE1:0:19} DISPLAY_LINE2=${LINE1:19:19} #     (2 ) disp_clear disp_print "${DISPLAY_LINE1}" disp_cr disp_print "${DISPLAY_LINE2}" sleep 4 # 4.2.    LINE1=$(sed -n '2{p;q}' /tmp/weather.txt) DISPLAY_LINE1=${LINE1:0:14} DISPLAY_LINE2=${LINE1:14:19} #     (2 ) disp_clear disp_print " ${DISPLAY_LINE1}" disp_cr disp_print "${DISPLAY_LINE2}" sleep 8 # **************************************************************** # 5.      #      #  DOLLAR=$(sed -n '1{p;q}' /tmp/ex.txt) DOLLAR=${DOLLAR//тАУ/-} #  EURO=$(sed -n '2{p;q}' /tmp/ex.txt) EURO=${EURO//тАУ/-} #     disp_clear disp_print ": ${DOLLAR}" disp_cr disp_print ": ${EURO}" sleep 8 # **************************************************************** # 6.      #      # BTC while read line do BTC=${line:0:13} done </tmp/bitcoin.txt # ETH while read line do ETH=${line:0:13} done </tmp/ethereum.txt #     #      disp_clear disp_print "BTC: ${BTC//./,}" disp_cr disp_print "ETH: ${ETH//./,}" #sleep 8 # **************************************************************** # 7.      #      (.  20 ) #DISPLAY_LINE1="  !" #DISPLAY_LINE2="  !" #      #disp_clear #disp_print "${DISPLAY_LINE1:0:19}" #disp_cr #disp_print "${DISPLAY_LINE2:0:19}" 

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ


рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, date рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг


 echo `date "+%d.%m.%Y %H:%M"` 

рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдлреЙрд░реНрдо рдХреА рддрд╛рд░реАрдЦ рдорд┐рд▓рддреА рд╣реИ: 05/20/2019 12:11ред


рджрд┐рди рдХреЗ рдЕрдВрдд рддрдХ рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░ TIME_OF_WORKDAY рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ TIME_OF_WORKDAY="18:00:00" рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдареАрдХ рд╣реИ, рдлрд┐рд░ рд╣рдо рдХрд╛рд░реНрдп рджрд┐рд╡рд╕ рдХреЗ рдЕрдВрдд рддрдХ рдШрдВрдЯреЛрдВ рдФрд░ рдорд┐рдирдЯреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ:


 HOURS=$(( ( $(date +%s --date=$TIME_OF_WORKDAY) - $(date +%s) ) / 3600 )) MINUTES=$(( (( $(date +%s --date=$TIME_OF_WORKDAY) - $(date +%s) ) - $HOURS * 3600) / 60 )) 

$ рдкреНрд░рддреАрдХ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЪрд░ рд╣реИред
# рдкреНрд░рддреАрдХ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИред


date +%s - рд╕реЗрдХрдВрдб рдореЗрдВ рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
date +%s --date=$TIME_OF_WORKDAY - TIME_OF_WORKDAY ("18:00:00") рддрдХ рд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред


рдХрд╛рд░реНрдп рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рддрдХ рд╕рдордп рдХреА рдЧрдгрдирд╛:


 DAYS=$(( ($DAY_OF_WEEKEND-$(date +%s)) / (24*3600) )) HOURS=$(( (($DAY_OF_WEEKEND-$(date +%s)) - ($DAYS*24*3600)) / 3600 )) MINUTES=$(( (($DAY_OF_WEEKEND-$(date +%s)) - ($DAYS*24*3600) - ($HOURS*60*60)) / 60 )) 

рдЬрд╣рд╛рдБ DAY_OF_WEEKEND=`date +"%s" --date="friday 17:00:00"` рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдордп рд╕реЗ рд╢реБрдХреНрд░рд╡рд╛рд░ 17:00:00 рдмрдЬреЗ рддрдХ рдХрд╛ рд╕рдордп рд╣реИред


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП


 #    disp_clear(){ echo -en "\x0c\x0b" > "${DEV_DISPLAY}" } 

disp_clear() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╣реИред {} , рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХрдорд╛рдВрдб рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред


DEV_DISPLAY рдЪрд░ "рд╡реИрд╢реНрд╡рд┐рдХ" рд╣реИ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░, DEV_DISPLAY="/dev/ttyUSB0" ред


рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрдВрдХреНрддрд┐ (1):


 LINE1=$(sed -n '1{p;q}' /tmp/weather.txt) 

sed рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рд╣реИ рдЬреЛ рдорд╛рдирдХ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рд╕рдВрдкрд╛рджрди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред -n рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред '1{p;q}' - 1 рдкрдВрдХреНрддрд┐ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдХреА ( p - рдкреНрд░рд┐рдВрдЯ, q - рдЖрдЙрдЯрдкреБрдЯ) рдХреЛ рдкрдврд╝реЗ рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред


рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк (рд▓рд╛рдЗрди рдмрд╛рдп рд▓рд╛рдЗрди):


 while read line do BTC=${line:0:13} done </tmp/bitcoin.txt 

рдФрд░ рдЗрд╕ рддрд░рд╣ DISPLAY_LINE1=${LINE1:0:14} рд▓рд╛рдЗрди LINE1 0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓рдВрдмрд╛рдИ рдореЗрдВ 14 рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред


рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрди // рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, DOLLAR//тАУ/- ред "-" рдЪрд┐рдиреНрд╣ рдХреЛ "-" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдлрд╝рд╛рдЗрд▓ parse.sh


рдлрд╝рд╛рдЗрд▓ parse.sh
 #!/bin/bash #      RSS   http://rp5.ru/rss/1859/ru # 1859 -    #       conv(){ #        CURRENCY=$(sed -n '1!G;h;$p' /tmp/ex.xml | sed -n "${1}{p;q}") CURRENCY=${CURRENCY//[^,^(^)^0-9^тАУ^+]/} echo $CURRENCY } #   c     # 1.  wget -q -O /tmp/rp5weather.xml http://rp5.ru/rss/1859/ru # 2.      wget -q -O /tmp/ex.xml http://currr.ru/rss/ # 3.   bitcoin/ethereum wget -q -O /tmp/bitcoin.json https://api.coinmarketcap.com/v1/ticker/bitcoin/ wget -q -O /tmp/ethereum.json https://api.coinmarketcap.com/v1/ticker/ethereum/ #   #   ,  ,    #     LINE31=$(sed -n '31{p;q}' /tmp/rp5weather.xml) LINE33=$(sed -n '33{p;q}' /tmp/rp5weather.xml) WEATHER1=${LINE31//"</title>"} WEATHER1=${WEATHER1//" ┬░C"} WEATHER1=${WEATHER1//"  "} WEATHER1=${WEATHER1:29} WEATHER2=${LINE33##*} WEATHER2=${WEATHER2//"┬░"} echo "${WEATHER1}" > /tmp/weather.txt echo ${WEATHER2%.*} >> /tmp/weather.txt #   Bitcoin LINEBTC=$(sed -n '7{p;q}' /tmp/bitcoin.json) echo "${LINEBTC//[^.^0-9]/}" > /tmp/bitcoin.txt #   Ethereum LINEETH=$(sed -n '7{p;q}' /tmp/ethereum.json) echo "${LINEETH//[^.^0-9]/}" > /tmp/ethereum.txt #   DOLLAR=$(conv 8) echo $DOLLAR > /tmp/ex.txt EURO=$(conv 6) echo $EURO >> /tmp/ex.txt 

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ


wget рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдлрд╛рдЗрд▓, рдкреЗрдЬ рдЖрджрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд┐рдХрд▓реНрдк -q - рдиреНрдпреВрдирддрдо рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, -O - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИред


рдиреАрдЪреЗ рджреА рдЧрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддреА рд╣реИрдВ:


 echo "${WEATHER1}" > /tmp/weather.txt echo ${WEATHER2%.*} >> /tmp/weather.txt 

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


рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:


 conv 6 

рд╕реАрдзреЗ рдХрд╛рд░реНрдп рдореЗрдВ:


 CURRENCY=$(sed -n '1!G;h;$p' /tmp/ex.xml | sed -n "${1}{p;q}") 

рдЬрд╣рд╛рдВ {1} рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рдирдВрдмрд░ 6 рдкрд╛рд╕ рд╣реИред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдЯрд┐рд▓ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛рд░реНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:


 LINEBTC//[^.^0-9]/ 

рдХреЗрд╡рд▓ "ред" рдФрд░ рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдПрдБ 0 рд╕реЗ 9 рддрдХ рд╣реИрдВред


рдЕрдВрддрднрд╛рд╖рдг


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


рдлрд┐рд▓рд╣рд╛рд▓, рдмреБрд▓реЗрдЯрд┐рди рдмреЛрд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред


рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реВрдЪреА


  1. LPOS-VFD рдХреНрд░реЗрддрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреГрд╖реНрда
  2. рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдореБрджреНрд░рд╛ рдкреНрд░рддреАрдХ
  3. рдмреИрд╢ рдореВрд▓ рдмрд╛рддреЗрдВ (рднрд╛рдЧ 1)
  4. BASH рдореВрд▓ рдмрд╛рддреЗрдВ (рднрд╛рдЧ 2)
  5. PuTTY рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
  6. рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рд▓рд┐рдирдХреНрд╕ рдиреИрдиреЛ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ
  7. WinSCP рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореИрдиреБрдЕрд▓

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


All Articles