Óåëßäá 2 áðü 3 ÐñþôïÐñþôï 123 ÔåëåõôáßáÔåëåõôáßá
ÅìöÜíéóç áðïôåëåóìÜôùí 11 ìÝ÷ñé 20 áðü 27

ÈÝìá: Ðñïãñáììáôéóìüò ìå object Pascal (Delphi)

  1. #11
    ÅîÝ÷ïí ìÝëïò
    Çìåñïìçíßá åããñáöÞò
    Oct 2010
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    1,632

    Çëåêôñïíéêü êáôÜóôçìá åéäþí èÝñìáíóçò êáé êëéìáôéóìïý

    Ðïóï âïñåéá äëä?
    ×ôåò çìïõí óôï ðçëé..

    Arduino óôéò äéáêïðåò. Ôé íá ðù..
    Åãù ðáëé êïõâáëáù êáôåõèõíôéêåò yagi êåñáéåò ãéá ôïõò 2,4....

    Óõíçèùò ïëï êáé êáðïéï wifi âñéóêåôáé êáé âïëåõïìáóôå ïëïé.

    Óôçíåôáé åíá laptop óå repeater mode êáé âïëåõïìáóôå ïëïé.
    Ôçëåöùíá, laptop, psp êáé äåí óõììáæåõåôáé..

    Êáé ãéá íá ìçí ðáéäåõïìáóôå...
    http://seventhgate.codeplex.com/



    Õà sorry ãéá ôï áó÷åôï post.... áëëá ôï ìïíï ó÷ïëéï åéíáé
    ðùò èá ðáíôñåøåéò ôï arduino êáé ôçí object pascal?



    Burn baby, burn

  2. #12
    ÌÝëïò
    Çìåñïìçíßá åããñáöÞò
    Mar 2012
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    99
    quote:Ðïóï âïñåéá äëä?
    Óôï ÍÝï Ðýñãï, äßðëá óôïõò Ùñåïýò
    Êþäéêáò:
    ðùò èá ðáíôñåøåéò ôï arduino êáé ôçí object pascal?
    Å÷ù ôåëåéþóåé Ýíá project ìå Delphi êáé åðéêïéíùíßá ìå modbus over TCP/Ip ìå Ýíá slave PLC S1200. Ìïõ æçôÞèçêå íá ðñïôåßíù åíáëáêôéêü h/w.

    Eõôõ÷þò õðÜñ÷åé ç ãëõêéÜ C. Äåí ìðïñåßò íá ðáò ðéï êïíôÜ óôçí assembly ìå Üëëç ãëþóóá. Åãñáöá ìå Zortech C compiler ôï 1989. ÌåôÜ âãÞêå ç êáôáðëçêôéêÞ Borland C/C++ (386 instructions, code optimizations).
    Êáé ìåôÜ îýðíçóå ï M$oft êáé ôïõò Ýêëåéóå üëïõò.

  3. #13
    ÅîÝ÷ïí ìÝëïò
    Çìåñïìçíßá åããñáöÞò
    Oct 2010
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    1,632
    Áðï ïôé âëåðù, õðáñ÷åé åôïéìï modbus slave ãéá arduinia..
    Áìá ï êïóìïò å÷åé ïñåîç êáé ÷ñïíï..
    Äåí ôï øáîá, áëëá éóùò õðáñ÷åé êáé óå master.
    Áëëá áìá å÷åéò ôï ìá÷áéñé êáé ôï êáñðïõæé, õëïðïéåéò ïôé èåò.

    Å÷åéò âñåé êáíá ôñïðï íá ìåôáöåñåéò ôï áðïôåëåóìá ôçò object pascal
    óå ðåñéâáëëïí åêôïò windows? ×ùñéò ôõ÷ïí ðáñáèõñéêï..

    Ôá windows ãéá áõôïìáôéóìï ÷áìçëïõ åðéðåäïõ åéíáé êáðùò äõóôñïðá...

    Ðñïâëåðù ïôé óõíôïìá ç êáëõôåñç ðëáôöïñìá áõôïìáôéóìïõ èá åéíáé android based...


    Burn baby, burn

  4. #14
    ÌÝëïò
    Çìåñïìçíßá åããñáöÞò
    Mar 2012
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    99
    quote:Ôá windows ãéá áõôïìáôéóìï ÷áìçëïõ åðéðåäïõ åéíáé êáðùò äõóôñïðá...
    Óõìöùíþ, ôá winda êáôÜöåñáí íá ãßíïõí ëåéôïõñãéêü óôçí Ýêäïóç ÍÔ. Áêüìá êáé ôüôå üìùò ç åêôýðùóç åíüò ìåãÜëïõ áñ÷åßïõ Ýðáéñíå üëç ôçí ìíÞìç êáé ãïíÜôéæå ôéò õðüëïéðåò åöáñìïãÝò.
    Áêüìç êáé óÞìåñá Ýíá reboot êÜèå ôüóï ôá "óôñþíïõí".

    ÁíáöïñéêÜ ìå ôçí åìöÜíéóç (user interface) íïìßæù ï Jobs óôçí ïìéëßá ôïõ óôï Standford ôá ëÝåé üëá.

    quote:Å÷åéò âñåé êáíá ôñïðï íá ìåôáöåñåéò ôï áðïôåëåóìá ôçò object pascal óå ðåñéâáëëïí åêôïò windows? ×ùñéò ôõ÷ïí ðáñáèõñéêï..
    Ç óõëëïãÞ äåäïìÝíùí ãßíåôáé óå windows service, ÷ùñßò ïèüíç êôë.
    Åíçìåñþíåéò ôá áðïôåëÝóìáôá óôçí ìíÞìç üôáí ðáñÜãïíôáé êáé óå áñ÷åßï êáé
    1. ôá «öùíÜæåéò» ðåñéïäéêÜ óôï êáëþäéï ìå UDP data Ýùò 1,5k.
    http://www.cyberciti.biz/tips/linux-...-tutorial.html

    2. ìÝóù êïéíÞò (shared) ìíÞìçò üðùò ç Win32 outputdebugstring http://www.codeproject.com/Articles/...putDebugString
    äåò ôïí äÝêôç (debugview)
    http://technet.microsoft.com/en-us/s.../bb842059.aspx

    3. ãßíåóáé åêäüôçò (publisher) êáé äÝ÷åóáé TCP/IP óõíäÝóåéò áðü óõíäñïìçôÝò êáé ôïõò äéáèÝôåéò ôá äåäïìÝíá.

    4. ÃñÜöåéò ôá äåäïìÝíá óå ìßá database êáé ôá äéáâÜæïõí ïé åíäéáöåñüìåíïé.

    quote:
    Ðñïâëåðù ïôé óõíôïìá ç êáëõôåñç ðëáôöïñìá áõôïìáôéóìïõ èá åéíáé android based...
    Mobile + core linux + Open Source + Java Þ FPC + Java GUI API
    Áí ðñïóèÝóåéò êáé optoisolated I/O êáé ìéá áîéïðñåðÞ ôñïöïäïóßá.
    êáé íÝá APIs ãéá íá ìÜèïõìå..

    Èá áëþóåé êáé ôï latop/desktop ðåñéâÜëëïí ? ÄÝ÷åóáé ôá áñ÷åßá óïõ íá åßíáé óôï óõííåöÜêé êáé íá ôá ðñïóðåëáýíåéò áðü ðáíôïý ?

  5. #15
    ÅîÝ÷ïí ìÝëïò
    Çìåñïìçíßá åããñáöÞò
    Oct 2010
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    1,632
    Ôï áí äå÷ïìáé ôá data ìïõ óôï cloud ëéãç óçìáóéá å÷åé.
    Ç ìåãáëç ìáæá ðáñáìåíåé clueless..
    Áóå ðïõ ôá å÷åé ÷áóåé 5-6 öïñåò ìéáò êáé ç ëåîç backup åéíáé áãíùóôç.
    Å÷ù åöáñìïóåé êïéíï÷ñçóôá óôï cloud, êáé ïëïé åéíáé happy...
    Ïëá ôá äåëôéá óõíôçñçóçò âñéóêïíôáé åêåé.
    Ïðïéïò èåëåé, ìðáéíåé êáé ôá âëåðåé.
    Ïðùò êáé åã÷åéñéäéá, ó÷åäéá êëð.


    Âåâáéá ôï äéêï ìïõ ëåâçôïóôáóéï å÷åé din rail ethernet switch êáé óõíôïìá èá å÷åé êáé wifi access point ïðïôå äåí åéìáé ôõðéêç ðåñéðôùóç.
    (áìá åéóáé êáôù êáé èåò íá äåéò ìéá ëåðôïìåñéá óôï manual ôïõ êáõóôçñá ð÷, áíïéãåéò ôï êéíçôï, êáé êáôåâáæåéò ôï pdf ôïõ êáôáóêåõáóôç áðü ôï wifi...) Áëëéùò ðñåðåé íá áíåâåéò åðáíù, íá ôõðùóåéò êáé íá îáíáêáôåâåéò.
    Ìïíï ìåéïíåêôçìá ïôé èåëåé êáèáñá ÷åñéá.)


    Ôï ìïíôåëï ðïõ ðåñéãñáöåéò åéíáé ëéãï ìåãáëï.
    Âåâáéá ïðïéïò ôï ÷ñåéáæåôáé, ôï ÷ñåéáæåôáé ëïãù ìåãåèïõò...
    Óå ìéêñïôåñåò åãêáôáóôáóåéò, ïðùò ëåâçôïóôáóéá, åîõðíá óðéôéá êëð
    ìáëëïí ÷ñåéáæïìáóôå êáôé ëéãïôåñï.
    Ôõðéêá åíá áîéïðéóôï multitasking os, åíá êáëï tcp/ip stack
    êáé åíá åõêïëï web server based äéá÷åéñéóôéêï.
    Áêïìá êáé ãéá databases, ãéá áðëá ðñáãìáôá, ïé textuñéåò äïõëåõïõí ìéá ÷áñá.

    Ôï laptop ðåñéâáëëïí å÷åé áëëùèåé.
    Îåêéíçóáìå ìå ôá netbook, ðçãáìå óôá tablet êáé ôùñá ðïõ ðåöôåé ôï êïóôïò èá ãéíïõí mainstream.
    Ôï äåé÷íïõí êáé ïé ðùëçóåéò åîáëëïõ.
    Êáé áõôç ç ðñïóåããéóç ôáéñéáæåé ãáíôé óôç ëïãéêç ôïõ cloud.
    Ç ìçðùò ôï cloud åéíáé ðïõ ôá êáíåé ôïóï ðåôõ÷çìåíá?
    Ìáëëïí êáé ôá äõï.

    Ôï linux å÷åé áðïôõ÷åé ùò desktop. Ï ëïãïò åéíáé áðëïò.
    Ðáíóðåñìéá äéáíïìùí, êáé ðåñéóôáóéáêç õðïóôçñéîç áðï ôïõò êáôáóêåõáóôåò hardware. Ôï ôé äïõëåõåé áðï ðåñéöåñåéáêá åéíáé ðåñéóóïôåñï èåìá ôõ÷çò. Áí äåí, ôï ìïíï ðïõ ìåíåé åéíáé íá ãñáøåéò ÌÏÍÏÓ óïõ ôïõò drivers. Êáëçíõ÷ôá linux desktop

    Ôï computing ãéá ôéò ìáæåò èá åñèåé ìåóù åíïò êéíçôïõ ðçãìåíïõ óôá áíáâïëéêÜ.
    Îå÷åéëùíåé ç ïèïíç, ìåãáëùíåé ç flash, áõîáíåôáé ç ìíÞìç, áíåâáéíåé ç áíáëõóç, êáé êáôáëçãïõìå óå åíá õðïëïãéóôç on steroids...
    Ïìùò åíôùìåôáîõ ç óõìâáôïôçôá ìå ôá windows å÷åé ðåñéïñéóèåé óôá áñ÷åéá ôïõ office...

    Ç Microsoft èá åéíáé ç íåá Novell. Ãéá ïðïéïí ôçí èõìáôáé.

    Ç Apple ðñïóðáèåé ìå íõ÷éá êáé äïíôéá íá ìáò ðåéóåé ïôé ïëç ç éäåá ôïõ cloud computing åéíáé (êáô åðåêôáóç)äéêéá ôçò. Ðñïóðáèåé íá ðíéîåé ôï android ãéá íá ðïõëáåé ìïíï ôá áðáñáäåêôá õðåñôéìçìåíá ðñïúüíôá ôçò.

    Ç Microsoft ôï êáôáëáâå áõôï áñêåôá íùñéò êáé áöçóå ôá ðñïéüíôá ôçò íá ðåéñáôåõôïõí ìáæéêá. Ôï ðáíçãõñé êñáôçóå ðáíù áðï 25 ÷ñïíéá.
    Êáé ôùñá ÷áíåé ãéáôé êáðïéïò áëëïò åöôéáîå êáôé áëëï êáé ôï äéíåé áðï ôçí áñ÷ç êáé ìáæéêá äùñåáí.

    Ç Apple öáéíïìåíéêá ëõóáåé, áëëá ïëá åéíáé èåìá êáðïéùí ÷ñçìáôùí.
    Ïõôùò ç áëëùò å÷åé Þäç âãáëåé áñêåôÜ.

    Ï áõôïìáôéóìïò ðáíôá èá åéíáé óõíôçñçôéêïò óôçí õéïèåôçóç íåùí ðñáãìáôùí óå áõôá ôá åðéðåäá.
    Ïìùò èá ïäçãçèåé åêåé êõñéùò ëïãù êïóôïõò..

    Ôåëéêá áõôï ðïõ ìåíåé åéíáé ïé âáóéêåò áñ÷åò êáé ç ìåèïäïëïãéá ðñïóåããéóçò. Ïëá ôá áëëá ìåôá áðï ëéãï êáéñï åîåëëéóïíôáé, ïðïôå áí äåí åéóáé óôéò åðáëîåéò êáôáëçãåéò íá øá÷íåóáé.

    Áðï ôçí áëëç, ïôé äåí åîåëéóóåôáé ðåèáéíåé...

    Íïìéæù ïôé åéíáé ùñá ãéá ìéá âïõôéá ïìùò. [8D]

    Burn baby, burn

  6. #16
    ÌÝëïò
    Çìåñïìçíßá åããñáöÞò
    Mar 2012
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    99
    quote:Áðï ôçí áëëç, ïôé äåí åîåëéóóåôáé ðåèáéíåé...
    ðïóï áëçèéíü...


    Äéåñãáóßåò (Processes) – ÍÞìáôá (Threads)

    Ïé ðñþôïé ìéêñïõðïëïãéóôÝò åß÷áí ìéá ÊåíôñéêÞ ÌïíÜäá Åðåîåñãáóßáò (CPU) ìå éêáíüôçôá ÷åéñéóìïý äåäïìÝíùí ìÞêïõò 8 bits êáé õðïóôÞñéæáí åîùôåñéêÞ ìíÞìç Ýùò 64ÊBytes. ÅóùôåñéêÜ åß÷áí êáôá÷ùñçôÝò (registers) óôïõò ïðïßïõò «öüñôùíáí» ôá äåäïìÝíá áðü ôçí ìíÞìç êáé ôïí äåßêôç ðñïãñÜììáôïò (Instruction Pointer) ðïõ Ýäåé÷íå ôçí åðüìåíç ðñïò åêôÝëåóç åíôïëÞ. Ïé åíôïëÝò Þôáí áíÜêëçóç/áðïèÞêåõóç äåäïìÝíùí óôçí ìíÞìç êáé áñéèìçôéêÝò êáé ëïãéêÝò ðñÜîåéò áíÜìåóá óå äõáäéêïýò áñéèìïýò. Ç ðñüóèåóç 2 áñéèìþí 16 bits (0..64535) ãéíüôáí ìå ðñüãñáììá.
    ÕðÞñ÷å ç äõíáôüôçôá Üìåóçò åîõðçñÝôçóçò åîùôåñéêþí äéáêïðþí (interrupts).

    Ôá øçößá ðïõ ÷ñçóéìïðïéïýìå óôï äåêáäéêü óýóôçìá åßíáé 10 áðü 0..9. Ìüëéò îåðåñÜóïõìå ôï 9 ðñïóèÝôïõìå Ýíá Üóóï óôï áñéóôåñü øçößï (óôï 0 áí äåí õðÜñ÷åé). Óôï äåêáåîáäéêü ôá øçößá åßíáé 16 ôá 0..9,A,B,C,D,E,F óôï ïêôáäéêü 8 ôá 0..7 êáé óôï äõáäéêü ìüëéò 2 ôá 0..1 (Üãåé / äåí Üãåé)

    Åîïõ êáé ç õðïãñáöÞ ôïõ Dipoli.
    There are only 10 types of people in the world: Those who understand binary, and those who don't.

    Åßíáé ðñïöáíÞò ç ó÷Ýóç ôïõ áñéèìïý ôùí äáêôýëùí ìáò ìå ôï áñéèìçôéêü óýóôçìá ðïõ ÷ñçóéìïðïéïýìå.

    Ìå ôçí åêêßíçóç ôçò ç ÊÌÅ Ýôñå÷å ôï ðñüãñáììá ðïõ õðÞñ÷å ãñáììÝíï óôï BIOS.
    Áõôü ôï ðñüãñáììá åêêßíçóçò, ìå ôçí óåéñÜ ôïõ Ýøá÷íå ãéá óõóêåõÝò (êáóåôüöùíï, floppy disk, hard disk, êÜñôá äéêôýïõ) áðü ôéò ïðïßåò äéÜâáæå ôï õðüëïéðï ðñüãñáììá ðïõ èá åêôåëïýóå óõíÞèùò Ýíá ðñùôüãïíï ëåéôïõñãéêü óýóôçìá.

    Ç ìíÞìç RAM Þôáí êïéíÞ ãéá ðñïãñÜììáôá êáé äåäïìÝíá êáé ìüíï Ýíá ðñüãñáììá ìðïñïýóå íá åêôåëåóèåß êÜèå öïñÜ. Ç ïèüíç Ýäåé÷íå ìüíï ÷áñáêôÞñåò.

    Ïé óçìåñéíïß ì/õ, åêôåëïýí ìéá áíôßóôïé÷ç äéáäéêáóßá åêêßíçóçò êáé ôï ðñüãñáììá ðïõ öïñôþíïõí êáé áñ÷éêÜ åêôåëïýí ëÝãåôáé ëåéôïõñãéêü óýóôçìá.
    Ôï ëåéôïõñãéêü óýóôçìá (windows, linux) äéá÷åéñßæåôáé ôïõò ÷ñÞóôåò ìå ôá äéêáéþìáôÜ ôïõò, ôçí ÷ñÞóç ôçò ìíÞìçò êáé ôùí ðåñéöåñåéáêþí óõóêåõþí êáé åìöáíßæïõí óôçí ïèüíç ôïõò Ýíá ðåñéâÜëëïí åñãáóßáò ðïõ ðñïóïìïéÜæåé ôçí åðéöÜíåéá ôïõ ãñáöåßïõ ìáò.

    Ôï ëåéôïõñãéêü óýóôçìá (ë/ó) äéáéñåß ôï ÷ñüíï åðåîåñãáóßáò ôçò ÊÌÅ óå öÝôåò (slices) êáé åðéôñÝðåé ôçí åêôÝëåóç ðïëëþí åöáñìïãÝò ðáñÜëëçëá êáôáíÝìïíôáò óå êÜèå ìßá ßóï ÷ñüíï åêôÝëåóçò.
    Ôï ë/ó äçìéïõñãåß ãéá êÜèå åöáñìïãÞ (processes) Ýíá éäåáôü ðåñéâÜëëïí, áðïìïíùìÝíï áðü ôéò Üëëåò åöáñìïãÝò Þ ôï ßäéï ôï ë/ó, åðéôñÝðåé ôçí ðñüóâáóç óôéò ðåñéöåñåéáêÝò óõóêåõÝò (êÜèå åöáñìïãÞ íïìßæåé üôé ôçò áíÞêåé ôï Ýíá êáé ìïíáäéêü mouse) êáé åðéôñÝðåé ôçí êïéíÞ ÷ñÞóç ôïõ êþäéêá ôùí Þäç öïñôùìÝíùí dlls.

    ÊÜèå åöáñìïãÞ îåêéíÜåé êáé óõíÞèùò êáôåõèýíåôáé áðü ôïí ÷ñÞóôç âÜóåé ôùí åðéëïãþí ôïõ menu. ÄçëáäÞ êÜèåôáé êáé ðåñéìÝíåé ôï ÷ñÞóôç íá êÜíåé ìßá åðéëïãÞ Þ íá åéóÜãåé ìßá ôéìÞ. Åßíáé ðïëëÝò öïñÝò áíáãêáßï íá åêôåëåóèïýí êáé Üëëåò ëåéôïõñãßåò ðáñÜëëçëá (ð÷ íá äÝ÷åôáé áðïìáêñõóìÝíåò åíôïëÝò ìÝóù ôïõ äéêôýïõ). ¸íá íÝï íÞìá (thread) åêôÝëåóçò ðñïãñÜììáôïò, ìÝóá óôá üñéá ôçò åöáñìïãÞò áëëÜ ÷ùñßò ôçí åðéâÜñõíóç ôçí äçìéïõñãßáò íÝïõ process.

    ÊÜèå åöáñìïãÞ Ý÷åé Ýíá êýñéï íÞìá (main thread) åêôÝëåóçò ðïõ ÷åéñßæåôáé ôçí åìöÜíéóç ôçò åöáñìïãÞò (åíçìÝñùóç ðáñáèýñùí êôë). Áí, ðéÝæïíôáò Ýíá button, ðñïêáëïýìå Ýíá ÷ñïíïâüñï õðïëïãéóìü ôüôå óå áõôü ôï äéÜóôçìá ç ïèüíç èá «ðáãþóåé». Ìðïñïýìå íá äçìéïõñãÞóïõìå Ýíá íÝï íÞìá ðïõ ðáñÜëëçëá èá õðïëïãßóåé ôï æçôïýìåíï ÷ùñßò íá ìðëïêÜñåé ôçí êõñßùò åöáñìïãÞ.
    Ç ÊÌÅ åêôåëåß êÜèå öïñÜ Ýíá thread. Ìå ôçí Ýëåõóç ôùí ðïëëáðëþí ðõñÞíùí Þ ôùí ðïëëáðëþí ÊÌÅ ôï ë/ó ìðïñåß íá ðñïãñáììáôßóåé ôçí ðáñÜëëçëç åêôÝëåóç ôùí threads óå üëïõò ôïõ äéáèÝóéìïõò ðõñÞíåò.

    Óõã÷ñïíéóìüò.

    ¸óôù üôé Ý÷ïõìå äýï threads ðïõ ðñÝðåé, ôï êáèÝíá, íá áõîÞóåé êáôÜ 1 ôçí ôéìÞ ìéáò ìåôáâëçôÞò. Ç äéáäéêáóßá óå øåõôï-ãëþóóá ìç÷áíÞò åßíáé
    Êþäéêáò:
    move variable, accum, 
    Add  accum,1
    move accum, variable
    Áí ç ðñþôç äéáäéêáóßá îåêéíÞóåé ôüôå ç äåýôåñç èá ðñÝðåé íá ðåñéìÝíåé Ýùò üôïõ åíçìåñùèåß ç ìíÞìç ìå ôçí íÝá ôéìÞ. Ç ÊÌÅ äéáêüðôåé ôçí åêôÝëåóç ôïõ 1ïõ thread ìåôÜ ôçí ðñþôç åíôïëÞ êáé ðñïãñáììáôßæåé ãéá åêôÝëåóç ôï 2ï thread. ¸ôóé áíôß íá Ý÷ïõìå ôåëéêÞ ôéìÞ 2 èá Ý÷ïõìå ôéìÞ 1.

    ×ñåéáæüìáóôå óçìáôïäüôåò óôïõò ïðïßïõò ðåñéìÝíïõìå óôï êüêêéíï êáé îåêéíÜìå óôï ðñÜóéíï.
    Êþäéêáò:
    Lock                 // ï óçìáôïäüôçò ãßíåôáé êüêêéíïò
    Load accum, variable // öþñôùóå ôçí ìåôáâëçôç óôï êáôá÷ùñçôÞ
    Inc accum,1          //  áõîçóå ôçí ôéìÞ ôïõ êáôá÷ùñçôÞ êáôÜ 1 
    Save accum, variable // áðïèÞêåõóå ôïí êáôá÷ùñçôÞ óôç ìåôáâëçôÞ
    Unlock               // ï óçìáôïäüôçò ãßíåôáé ðñÜóéíïò
    Ç ÷ñÞóç ôïõ óçìáôïäüôç áíáãêÜæåé üëåò ôéò äéáäéêáóßåò íá ìðïõí óôçí óåéñÜ êáé åîáóöáëßæåé ôçí óùóôÞ ðñüóâáóç óå êïéíÜ äåäïìÝíá.


  7. #17
    ÌÝëïò
    Çìåñïìçíßá åããñáöÞò
    Mar 2012
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    99
    Threads óõíÝ÷åéá

    Ãéá íá ïñßóïõìå Ýíá íÝï TMyThread êëçñïíïìïýìå ôçí âáóéêÞ êëÜóç TThread êáé áíôéêáèéóôïýìå (override) ôçí ìÝèïäï execute.

    Åíóùìáôþíïõìå óôçí íÝá êëÜóç áíôéêåßìåíá Þ ìåôáâëçôÝò ðïõ áðáéôïýíôáé.
    Ôï thread åêôåëåß ïôé ïñßæåé ç ñïõôßíá Execute. ¼ôáí áõôÞ ôåëåéþóåé ôüôå ôåëåéþíåé êáé ôï thread.

    Äçìéïõñãïýìå Ýíá TMyThread ìå ôçí ÷ñÞóç ôïõ constructor TMyThread. Create(CreateSuspended: Boolean). ÓõíÞèùò ôï äçìéïõñãïýìå áíåíåñãü TThread.Create(true), áñ÷éêïðïéïýìå üóåò ìåôáâëçôÝò ôïõ ÔThread áðáéôåßôáé êáé óôçí óõíÝ÷åéá êáëïýìå ôçí ìÝèïäï Resume ãéá íá ôï åíåñãïðïéÞóïõìå.

    Êþäéêáò:
      TFileCopy = class(TThread)
       private
        FsrcFNames,
        FdstFnames:TStrings;
       protected
        procedure Execute; override;
       public
        constructor CopyFiles(const srcFNames,dstFnames:TStrings);
        procedure   Stop;
      end;
    
    …
    
    procedure TFileCopy.Execute;
    ...
    begin
    ...
      while not Terminated do
       begin
    
    // ðùò ÷ñçóéìïðïéïýìå ôï try/finally ìå ðïëëÜ objects
    
        fsrc:=nil;
        fdst:=nil;
        try
    …
    // ÅëÝã÷ïõìå ðÜíôá ôá exceptions ãéáôß äéáöïñåôéêÜ 
    // äéáêüðôåôáé ç åêôÝëåóç ôïõ thread
    
         try
    
    // åðéêïéíùíßá ìå ôï êýñéá öüñìá ôçò åöáñìïãÞò
          PostMessage(UIHandle, COPY_EVENT, 1, fsrc.Size); 
    
         Except
    
    // åðéêïéíùíßá ìå ôï êýñéá öüñìá ôçò åöáñìïãÞò ìå strings
          debug(Exception(ExceptObject).Message);
          PostMessage(UIHandle, COPY_EVENT, 0, 0);
    
         end;
    
        finally
         fdst.free;
         fsrc.Free;
        end;
    
       end;
    ÄéáêïðÞ åêôÝëåóçò ôïõ thread

    Êþäéêáò:
    procedure TFileCopy.Stop;
     begin
      Terminate;
      WaitFor;
     end;
    Åðéêïéíùíßá ìå ôï êýñéá öüñìá ôçò åöáñìïãÞò ìå strings.

    Êþäéêáò:
      TMainFrm = class(TForm)
       …
        procedure LogEvent(var Msg: TMessage); message LOG_EVENT;
       …
       end;
    
    procedure TMainFrm.LogEvent(var Msg: TMessage);
     begin
      Log(pchar(msg.wParam));
      StrDispose(pchar(msg.wParam));
     end;
    
    procedure TMainFrm.FormCreate(Sender: TObject);
    begin
    ....
     UIHandle:=Handle;
    end;
    
    procedure Debug(const msg:string);
     var p:pchar;
     begin
      if UIHandle=INVALID_HANDLE_VALUE then
       outputdebugstring(pchar(msg))
      else begin
       p:=strNew(pchar(msg));
       PostMessage(UIHandle,LOG_EVENT,integer(p),0)
      end;
     end;
    Ðñïóï÷Þ óôá strings Þ óå reference counted ìåôáâëçôÝò ðïõ åßíáé ìÝëç åíüò record. Äåí ìðïñïýìå íá áñ÷éêïðïéÞóïõìå ôï record ìå ôçí Fillchar. (âëÝðå procedure Finalize)

    Óôï http://www.filefactory.com/file/6zop.../Example01.rar èá âñåßôå ôï source & exe ãéá ôï ðáñáðÜíù ðáñÜäåéãìá.

  8. #18
    ÌÝëïò
    Çìåñïìçíßá åããñáöÞò
    Mar 2012
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    99
    ÓõíÝ÷åéá óôá threads êáé åéóáãùãÞ óôá Sockets

    ÊÜôé ïé âïõôéÝò óôï ôóïõêáúôé, êÜôé ôá ôóßðïõñá, êÜôé ç ðïëõðëïêüôçôá ôïõ èÝìáôïò êáèõóôÝñçóáí ôçí ðïëõáíáìåíüìåíç óõíÝ÷åéá. ÁëëÜ öåõ, óõíå÷ßæù áêÜèåêôïò.

    Ç ðëÞñçò åêìåôÜëëåõóç ôùí äõíáôïôÞôùí ôùí íÝùí Ç/Õ, óõíåðÜãåôáé ÷ñÞóç üëùí ôùí ðõñÞíùí êáé ôç äçìéïõñãßá åöáñìïãþí ðïõ åêôåëïýí ôá õðïëïãéóôéêÜ ôïõò êáèÞêïíôá ðáñÜëëçëá, ìïéñÜæïíôáò ôá óå ìéá ïìÜäá áðü äéáèÝóéìïõò åñãÜôåò íÞìáôá (working Threads). Ôï ëåéôïõñãéêü óýóôçìá, áíáèÝôåé ôçí åêôÝëåóç ôùí íçìÜôùí óôïõò õðÜñ÷ïíôåò ðõñÞíåò (cores).

    Èá ó÷åäéÜóïõìå ìßá åöáñìïãÞ ðïõ èá ìðïñåß íá «êáôåâÜóåé» Ýíá ïëüêëçñï éóôüôïðï (www.monachos.gr) óå ôïðéêü äßóêï. Èá îåêéíÜ ìå ôçí ðñþôç óåëßäá (/forum/) êáé áöïý ôçí êáôåâÜóåé, èá øÜîåé ãéá ôéò õðÜñ÷ïõóåò áíáöïñÝò ôçò óå Üëëåò óåëßäåò (óôï ßäéï Þ Üëëï éóôüôïðï). Ç äéáäéêáóßá èá åßíáé áíáäñïìéêÞ. Ç áíÜãíùóç ìßáò óåëßäáò áðü Ýíá éóôüôïðï (âáóéêÞ ëåéôïõñãßá ôïõ ðåñéçãçôÞ) áðáéôåß ÷ñÞóç Sockets êáé ôïõ ðñùôïêüëëïõ HTTP 1.0/1.1

    Sockets (õðïäï÷Þ)

    Socket åßíáé ìéá õðïäï÷Þ ðïõ åðéôñÝðåé ôçí åðéêïéíùíßá áíÜìåóá óå 2 Ç/Õ (server & client) ãéá ôçí áíôáëëáãÞ äåäïìÝíùí ìÝóù ôçò äéêôõáêÞò õðïäïìÞò.

    Óôü÷ïò åßíáé ç äçìéïõñãßá, áíÜìåóá óå äýï Üêñá, Ýíá éäåáôïý êõêëþìáôïò øçöéáêÞò åðéêïéíùíßáò.

    Ôï Üêñï ôïõ ðåëÜôç åêêéíåß ôçí óýíäåóç, ÷ñçóéìïðïéþíôáò ìßá õðïäï÷Þ ðåëÜôç (client socket) ôçí äéåýèõíóç êáé ôçí èýñá ôïõ åîõðçñåôçôÞ. Ï åîõðçñåôçôÞò, ìÝóù ìßáò õðïäï÷Þò áíáìïíÞò (listening socket) õðïäÝ÷åôáé óõíäÝóåéò. ÊÜèå áßôçóç óýíäåóçò, äçìéïõñãåß ôï 2ç Üêñï, ìßá íÝá õðïäï÷Þ åîõðçñåôçôÞ (server socket) áðïêëåéóôéêÜ ãéá áõôÞ ôç óýíäåóç êáé óõíÞèùò Ýíá íÞìá ðïõ èá ÷åéñéóèåß ôçí åðéêïéíùíßá ôùí 2 Üêñùí.

    http://www.inetdaemon.com/tutorials/...andshake.shtml

    ÅöáñìïãÞ SiteGrab

    Áí õðïèÝóïõìå üôé Ý÷ïõìå ìéá ïìÜäá áðü åñãÜôåò íÞìáôá êáé ìßá ëßóôá äéáöüñùí åñãáóéþí. ¸íáò åðéóôÜôçò äéáôçñåß ôçí ëßóôá åñãáóéþí åíçìåñùìÝíç, åëÝã÷åé ôçí äéáèåóéìüôçôá êÜèå åñãÜôç íÞìá êáé áíáèÝôåé åêêñåìåßò åñãáóßåò óå åëåýèåñïõò åñãÜôåò íÞìáôá Ýùò üôïõ üëïé ïé åñãÜôåò íÞìáôá åßíáé áðáó÷ïëçìÝíïé Þ Ý÷åé áíáèÝóåé üëåò ôéò åñãáóßåò ðñïò åêôÝëåóç. Ìüëéò ï åðéóôÜôçò ôåëåéþóåé ìå ôçí ëßóôá åñãáóéþí «êïéìÜôáé» (äåí êáôáíáëþíåé ðüñïõò ôïõ Ç/Õ) Ýùò üôïõ áíáôåèåß íÝá åñãáóßá. ºóùò, áðü êïéíùíéïëïãéêÞ Üðïøç, ìéá óýãêñéóç ìå ôï áíôßóôïé÷ï áíèñþðéíï ìïíôÝëï åñãáóßáò íá ìáò ïäçãïýóå óå åíäéáöÝñïíôá óõìðåñÜóìáôá.

    Ç åöáñìïãÞ äçìéïõñãåß Ýíá object åñãáóßá êáé ôï áíáèÝôåé óôïí åðéóôÜôç ãéá íá ôï õëïðïéÞóåé.

    ÊëÜóç Åñãáóßá
    Ç êëÜóç åñãáóßá (TBasicWorkObject) ðåñéëáìâÜíåé üëá ôá áðáñáßôçôá äåäïìÝíá êáé ìßá ìÝèïäï åêôÝëåóçò ôçò.

    Ïñßæåôáé óáí

    Êþäéêáò:
    TBasicWorkObject=class
       public
        procedure doWork; virtual; abstract;
       end;
    Ç ðñáãìáôéêÞ åñãáóßá TGrabUrl êëçñïíïìåß áðï ôçí TBasicWorkObject êáé ãíùñßæåé íá «êáôåâÜæåé» ìßá óåëßäá áðü Ýíá éóôüôïðï.

    Êþäéêáò:
      TGrabUrl=class(TBasicWorkObject)
       private
        FClientSocket: TClientSocket;
    ..
       public
        procedure   doWork; override;
        constructor Create(const aSite,aUrl:string;aDepth:integer); overload;
    ..
        property    Stream:TMemoryStream read FStream;
        property    Depth:integer read FDepth;
      end;
    Ç TGrabUrl.doWork êáôåâÜæåé ôçí óåëßäá êáé åíçìåñþíåé ôçí êýñéá öüñìá

    Êþäéêáò:
      postmessage(UIHandle,WORK_DONE,integer(self),0);
    Åêåß ãßíåôáé ç åðåîåñãáóßá êáé ç áðïèÞêåõóç ôçò óåëßäáò.

    ÊÜèå éóôüôïðïò Ý÷åé äåíäñéêÞ äïìÞ êáé êÜèå åðßðåäï ÷áñáêôçñßæåôáé áðï ôï âÜèïò ôïõ.

    ÊëÜóç ÅðéóôÜôçò

    Ç êëÜóç åðéóôÜôçò, äéáôçñåß ôçí ëßóôá åñãáóéþí ãéá êÜèå óåëßäá ðïõ ðñÝðåé íá êáôåâÜóåé êáé äçìéïõñãåß êáé åëÝã÷åé ôá íÞìáôá åñãÜôåò.
    ÎõðíÜåé ðåñéïäéêÜ, êáé áí õðÜñ÷åé åñãáóßá êáé äéáèÝóéìï íÞìá åñãÜôçò ôçí ðñïãñáììáôßæåé ðñïò åêôÝëåóç.

    Êþäéêáò:
      TThreadsMngr=class(TThread)
       private
        FPeriod:integer;
        FThreads,
        FWorkQ :TObjectList;
       ...
       public
        constructor Create(WorkThreadClass:TWorkThreadClass;
                           DefThreadCount:integer=10);
        ...
        procedure   QueueWork(work:TBasicWorkObject);
      end;
    ÅñãÜôåò íÞìáôá

    ÊÜèå åñãÜôçò íÞìá «êïéìÜôáé» êáé ðåñéìÝíåé 2 óçìáôïäüôåò (events) íá åíåñãïðïéçèïýí ãéá íá äïõëÝøåé Þ íá ôåñìáôßóåé. Åêôåëåß ôçí åñãáóßá ôïõ, êáëþíôáò ôçí ìÝèïäï TBasicWorkObject.doWork êáé ìüëéò ôåëåéþóåé îáíáêïéìÜôáé.

    Êþäéêáò:
      TWorkThread=class(TThread)
       private
        FWorkObj   : TBasicWorkObject;
        ...
       public
        constructor Create(aId:integer;aHandle:THandle);
        procedure  Work(aWorkObj:TBasicWorkObject);
        ...
       end;
    
    procedure TWorkThread.Work(aWorkObj:TBasicWorkObject);
     begin
      FWorkObj:=aWorkObj;
      FWorkEvent.SetEvent;
      if Suspended then Resume; // FWorkEvent will signal imediatelly
     end;
    
    procedure TWorkThread.Execute;
    begin
      H[0] := FStopEvent.Handle;
      H[1] := FWorkEvent.Handle;
    
      while not Terminated do
       case WaitForMultipleObjects(2, @H, False, INFINITE) of
        WAIT_OBJECT_0     : Terminate; // StopEvent Signaled
        WAIT_OBJECT_0 + 1 : begin // WorkEvent Signaled
                             try
                              FWorkObj.doWork;
                             except
                             end;
                             FWorkEvent.ResetEvent; // Lower WorkEvent
                            end;
       end
    
     end;
    Óôï ðáñÜäåéãìá õëïðïßçóá ôçí áíÜãíùóç ôçò ðñþôçò óåëßäáò /forum/ áðü ôïí éóôüôïðï (www.monachos.gr ) êáé áíåýñåóç üëùí ôùí áíáöïñþí óå óåëßäåò (ð÷ http://www.monachos.gr/forum/topic.asp? TOPIC_ID=3931) 1ïõ åðéðÝäïõ ðïõ ðåñéÝ÷åé .

    Ç áñ÷éêÞ óåëßäá áðïèçêåýåôáé óáí c:\temp\forum\default.htm

    Ìðïñåßôå íá êáôåâÜóåôå ôçí åöáñìïãÞ êáé ôï source áðü ôï example02.rar
    http://www.filefactory.com/file/1pjn.../Example02_rar


    There always be one more bug.

  9. #19
    ÌÝëïò
    Çìåñïìçíßá åããñáöÞò
    Mar 2012
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    99
    TCP Sockets êáé modbus

    H Borland, óõãíþìç Embarcadero, óôáìÜôçóå óéùðçëÜ ôçí õðïóôÞñéîç óôá socket components êáé óôçí èÝóç ôïõò ðñüôåéíå ôá Open Source Indy components.

    Áñ÷éêÜ ç åðéêïéíùíßá åíüò client ìå Ýíá server õëïðïéÞèçêå óáí óýã÷ñïíç. Ï ðåëÜôçò ðåñßìåíå (blocking) Ýùò üôïõ ðÜñåé áðÜíôçóç êáé äåí ìðïñïýóå íá êÜíåé êÜôé Üëëï. Ãéá íá åîõðçñåôçèåß ç åðéêïéíùíßá ðåñéóóïôÝñùí ðåëáôþí óå êÜèå óýíäåóç ìå ôï listening socket åðéêñÜôçóå ç ÷ñÞóç åíüò íÞìáôïò áðïêëåéóôéêÜ ãéá ôçí óõãêåêñéìÝíç åðéêïéíùíßá. Ôá Indy õðïóôÞñéîáí ôï áóýã÷ñïíï ìïíôÝëï ìå ôï ïðïßï áðïóôÝëëåôáé åéäïðïßçóç üôáí ç áðÜíôçóç åßíáé äéáèÝóéìç.

    Ç óýã÷ñïíç (blocking) åðéêïéíùíßá (óåéñéáêÞ Þ äéêôõáêÞ) åßíáé ðéï áðëÞ êáé ðéï åýêïëç óôç õëïðïßçóç.

    ¢ëëåò âéâëéïèÞêåò ìå õðïóôÞñéîç TCP/IP åßíáé
    http://synapse.ararat.cz/doku.php
    http://lnet.wordpress.com/

    ÊëÜóåéò ãéá sockets

    Êþäéêáò:
                  TCustomWinSocket (abstract)
              |              |                 |                
    TClientWinSocket  TServerClientWinSocket TServerWinSocket
    Õðïäï÷Þ ðåëÜôç (client socket) : TClientWinSocket
    Õðïäï÷Þ áíáìïíÞò (listening socket) : TServerWinSocket
    Õðïäï÷Þ åîõðçñåôçôÞ (server socket): TServerClientWinSocket

    Components (ìðïñïýìå íá ïñßóïõìå ôéìÝò óôéò éäéüôçôåò ôïõò ìÝóù ôïõ Object inspector). ×ñçóéìïðïéïýí ôï TCustomWinSocket

    Êþäéêáò:
                 
               TAbstractSocket (abstract)
                        |
                  TCustomSocket (abstract)
                    |         |
         TClientSocket   TCustomServerSocket (abstract)
                                 |
                            TServerSocket
    ×ñçóéìïðïéþ ôçí êëÜóç TWinSocketStream ðïõ ìïõ ðáñïõóéÜæåé ôçí äéáäéêáóßá åããñáöÞ Þ áíÜãíùóçò áðü socket óáí óå áñ÷åßï.

    ModBus

    Åßíáé Ýíá ðñùôüêïëëï åðéêïéíùíßáò ãéá âéïìç÷áíéêÝò óõóêåõÝò åëÝã÷ïõ äéáäéêáóéþí êáé ôùí óõóêåõþí åðéôÞñçóçò ôïõò. ÅðéôñÝðåé ôçí ìåôÜäïóç ôçò êáôÜóôáóçò øçöéáêþí/áíáëïãéêþí åéóüäùí (áðü ôéò óõóêåõÝò ðïõ ôéò óõëëÝãïõí) êáé ôïí êáèïñéóìü ðáñáìÝôñùí áíáöïñÜò áðü ôïõò åðéôçñçôÝò.

    http://www.prosoft-technology.com/kb..._modbustcp.pdf
    http://www.modbus.org/tech.php

    Ç åðéêïéíùíßá áðáéôåß 2 óõóêåõÝò (master-slave). Ç master óõóêåõÞ åêêéíåß ôçí åðéêïéíùíßá êáé ñùôÜåé Þ äßíåé åíôïëÝò óôïí slave. Ïé slave óõóêåõÝò áðáíôïýí óôá åñùôÞìáôá ðïõ ôïõò áðåõèýíåé ï master.

    ÂáóéóìÝíç óôá Indy componets, õðÜñ÷åé ç åëåýèåñç ModBusTCP âéâëéïèÞêç (http://sourceforge.net/projects/delphimodbus/) ðïõ õëïðïéïýí ôï modbus óå TCP/IP.

    Ìéá áðëÞ åöáñìïãÞ åßíáé ç åðéôÞñçóç ôçò êáôÜóôáóçò åíüò slave PLC ðïõ ìå ôçí óåéñÜ ôïõ åëÝã÷åé ìéá äéáäéêáóßá. Èá ÷ñåéáóèïýìå Ýíá modbus master ðïõ èá «ìéëÞóåé» ìå function codes 3 ìå ôï PLC êáé èá äéáâÜóåé Þ èá ãñÜøåé óå ìíÞìåò ðïõ áíôéóôïé÷ïýí óå åéóüäïõò (øçöéáêÝò Þ áíáëïãéêÝò) Þ åîüäïõò.

    Ãéá íá õëïðïéÞóïõìå ìßá master modbus åöáñìïãÞ áðáéôåßôáé Ýíá áðëü client socket.
    Ìßá slave modbus åöáñìïãÞ åßíáé óôçí ïõóßá Ýíáò ðïëõíçìáôéêüò tcp/ip server ðïõ áêïýåé óôçí èýñá 502 êáé áðïäÝ÷åôáé ìçíýìáôá óôçí ðáñáêÜôù ìïñöÞ.

    Êþäéêáò:
    |Modbus Application Protocol (MBAP) Header | Protocol Data Unit (PDU)|
    |------------------------------------------+-------------------------|
    |Transaction |Protocol  | Length  | Unit   | Function   |   Data     |
    |Identifier  |Identifier| Field   | ID     | Code       |            |
    |--------------------------------------------------------------------|
    | (2 bytes)  |(2 bytes) |(2 bytes)|(1 byte)|(1 byte)    | Ìåôáâëçôü  |
    |------------------------------------------+-------------------------|
    Ìðïñåßôå íá êáôåâÜóåôå ôçí åöáñìïãÞ êáé ôï source áðü ôï ModbusMaster.rar

    http://www.filefactory.com/file/6skb...dbusMaster_rar

    Êáé ãéá äïêéìÝò ôçò åðéêïéíùíßáò õðÜñ÷åé ï Modbus PLC Simulator
    http://www.plcsimulator.org/



    H ôéìÞ $AA óôçí èÝóç 4001 +0 áðåéêïíßæåôáé óôá leds M100.0 .. M100.7
    H float32 ôéìÞ óôçí èÝóç 4001 +1 & 4001 +2 åìöáíßæåôáé óáí èåñìïêñáóßá.
    Ôá 3 ðñþôá bits óôçí èÝóç 4001+3 áðåéêïíßæåôáé óôá leds M106.0 .. M106.2

    Ïé Ýîïäïé ðñïêáëïýí áëëáãÝò óôï high byte óôçí èÝóç 4001 +0.

    There’s always one more bug.

  10. #20
    ÌÝëïò
    Çìåñïìçíßá åããñáöÞò
    Mar 2012
    ÈÝóç
    Athens, , Greece.
    Éäéüôçôá:
    Áãíùóôç
    ÁðáíôÞóåéò
    99

    Çëåêôñïíéêü êáôÜóôçìá åéäþí èÝñìáíóçò êáé êëéìáôéóìïý

    Modbus & big endian vs little endian

    ¸óôù üôé Ý÷ïõìå Ýíá 16 bit áñéèìü 0x1234.

    Ðùò áðïèçêåýåôáé óôçí ìíÞìç ôïõ õðïëïãéóôÞ ?.

    Áí õðïèÝóïõìå üôé ç ðñþôç èÝóç ìíÞìçò Ý÷åé äéåýèõíóç 0, ç åðüìåíç 1 êïê ôüôå óå KME (CPU) ôçò intel ôï íïýìåñï èá áðïèçêåõôåß óáí 34 12 (little endian) åíþ óå KME ôçò Motorola (o åêðëçêôéêüò 68000) ôï íïýìåñï èá áðïèçêåõôåß óáí 12 34 (big endian).

    ÐñïóïìïéùôÞò. Åêðëçêôéêü åñãáëåßï, áñêåß íá ôçñåßò ôéò áíáëïãßåò ìå ôï ðñáãìáôéêü êüóìï.

    Ôï modbus ÷ñçóéìïðïéåß big endian äéÜôáîç ôùí áñéèìþí óôá äéÜöïñÜ ìõíÞìáôÜ ôïõ.

    ÊáôÜ óõíÝðåéá áí èÝëïõìå íá åëÝíîïõìå óôï ðñüãñáììÜ ìáò ôçí ýðáñîç alarm (bit 0) ìå ìÜóêá 0x0001 ç ôéìÞ ðïõ ðñÝðåé íá åéóÜãïõìå óôï simulator åßíáé 0100 êáé Ï×É 0001.

    ÌéêñÝò ëåðôïìÝñåéåò ...

Äéêáéþìáôá áðÜíôçóçò

  • You may not post new threads
  • ÄÅÍ Ý÷åôå ôï äéêáßùìá áðÜíôçóçò
  • You may not post attachments
  • ÄÅÍ ìðïñåßôå íá åðåîåñãáóôåéôå ôéò áðáíôçóåéò óáò
  •  
  • BB code is Áíïéêôü
  • Smilies are Áíïéêôü
  • [IMG] code is Áíïéêôü
  • [VIDEO] code is Êëåéóôü
  • HTML code is Êëåéóôü