ããŠãä»åããã¯ããå°ããŸãšãã«ããã°ã©ã ãäœãããšã«ãããããšãã£ãŠããã¡ãã¯åãå§ãããšãããç¡ãããå¥ã«Win32ç°å¢ã§ã®ããã°ã©ã ã®äœãæ¹ã説æããã®ãäž»çŒã§ã¯ãªãã®ã§ãã»ã©ã»ã©ã®ãšãããŸã§äœãããã ãã®ãã玹ä»ããçšåºŠã«çããŠãããããšæãã
å ·äœçã«ã¯ããããªæãã§ç«ã¡äžãããã®ãšãã(Photo01)ãæäœã¯ã¡ãã¥ãŒã®ã¿ã«ãŸãšããŠãããFile(Photo02)/ Transfer(Photo03)/ Settings(Photo04ïœ07)/ Help(Photo08,09)ãå®è£ ããŠããã
|
|
Photo01: ç»é¢è¡šç€ºãã©ããããã¯ã¡ãã£ãšæ©ãã ã®ã ããåºãŠãªããšå¯ãã(è¬)ã®ã§å ¥ããããšã«ããã®ãããã¯å¥œã¿ã®åé¡ã |
Photo02: ä»ã¯Exitã®ã¿ã |
|
|
Photo07: ãã®ãªãã¬ãã·ã¥ã¬ãŒãã0.1secã§ãããªãããããæãã§ããã以äžã¬ãŒãããããå¿ èŠã¯ãªããšå€æããã |
Photo08: Helpã¯Aboutã®ã¿ã |
ããŠãããã®äœãæ¹ã§ãããããŸãã¯Visual Studio.NET 2010 Expressãç«ã¡äžããŠæ°èŠãããžã§ã¯ããçæãã(Photo10)ãããã§ããããŸã§ãšã¯ç°ãªã"Win32 ãããžã§ã¯ã"ãéžæããããããšãŠã£ã¶ãŒããç«ã¡äžããããã ã(Photo11)ãæåã¯ã次ãžããéžæããŠã¿ãããããã§å€å°ãªãã·ã§ã³ãéžã¹ãããã«ãªã£ãŠãã(Photo12)ã
|
|
Photo09: Aboutç»é¢ããã®ãã€ã¢ãã°ã¯Visual Studo.NET 2010 experssãèªåçæã |
Photo10: ãã®ãããã®æé ã¯æ¯ååãã |
ãŠã£ã¶ãŒããå®äºãããšãèªåçã«ã¹ã±ã«ãã³ã®ã³ãŒããçæãã(Photo13)ãããããã«ãããŠ(Photo14)å®è¡ãããšããšããããç«ã¡äžãã(Photo15)ããã®æç¹ã§ããã¡ã€ã«ããšããã«ããã¯åºæ¥ãŠãããçµäºãšãã€ã¢ãã°è¡šç€ºãŸã§ã¯èªåçã«å®æããŠãããããšã¯ããã«èä»ããããŠããããã ã
|
Photo13: ã¹ã±ã«ãã³ãšãã£ãŠããããã ãã§190è¡ãããããã£ãšããã®å€§åã¯ããã®ãŸãŸã«ããŠããã°ããã®ã ãã |
|
Photo15: ç¡é§ã«å€§ããªãµã€ãºã§ç«ã¡äžããããããã¯äœãåæèšå®ããŠããªãããã |
ããŠãèä»ãã®ç¬¬äžæ©ã¯(ãã®ãããã¯äººã«ãã£ãŠããããããã ãããçè ã®å Žåã¯)ãŸãã¡ãã¥ãŒã®äœæã§ããããŸãã¡ãã¥ãŒã®é ç®åãæ±ºããã€ãã§ãã®é ç®å(ãªããžã§ã¯ãå)ã«å¯Ÿããcallbackãèšè¿°ããŠããããšããæ¹æ³ãåççã§ãããšæãããšããããã§ãä»ã¯ããã¡ã€ã«ããšããã«ãããããªãã¡ãã¥ãŒãPhoto01ïœ09ã®æ§ãªæ§é ã«å€ããŠããããšã«ããã
å®ã¯ããã§Visual Studio.NET 2010 Expressã®å¶éãã¢ãã«åºãŠãããVisual Studio.NT 2010 Professionalã®å ŽåããªãœãŒã¹ãšãã£ã¿ãšåŒã°ããããŒã«ããããããã䜿ãããšã§ç»é¢ãã察話åŒã«ã¡ãã¥ãŒãç°¡åã«äœãããšãåºæ¥ã(Photo16)ããã®ãªãœãŒã¹ãšãã£ã¿ã§çæãããã³ãŒãã¯.RCãšããæ¡åŒµåãæã€ãªãœãŒã¹ãã¡ã€ã«ã«åãããããããVisual Studio.NET 2010ãèªã¿èŸŒãã§å®éã®Windowsã®ããã°ã©ã ã«åæ ãã圢ã ã
ãšãããVisual Studio.NET 2010 Expressã«ã¯ãªãœãŒã¹ãšãã£ã¿ãä»å±ããŠããªãããã®ããå©çšè ã¯ãæã§ãªãœãŒã¹ãã¡ã€ã«ãæžãæããå¿ èŠãããããšãã£ãŠããå®ã¯ããã»ã©é£ãããªããList 1ã«æžãæãå(ã€ãŸãæåã®ã¹ã±ã«ãã³ã®ç¶æ )ãList 2ã«æžãæãåŸ(ã€ãŸããªãœãŒã¹ãšãã£ã¿ã§æžãæãåŸ)ã®ã¡ãã¥ãŒã®å®çŸ©ã§ãããå®ã¯ãã®éšå以å€äžåããã£ãŠããããéã«èšãã°çæããã80LED.RCã®ãã¡ãList 1ã®æ§ã«ãªã£ãŠããéšåããšãã£ã¿ãªã©ã§List 2ã®æ§ã«æžãæããã°ãããã§ã¡ãã¥ãŒãçæããããšããä»çµã¿ã ã
ã€ãã§ã«ããã§ç°¡åã«èª¬æããŠããããWin32ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãåºæ¬çã«ã¯åæèšå®ãçµãã£ãåŸã¯ãGetMessage()ãšãã颿°ãã²ãããåŒã³ãªããç¡éã«ãŒããç¹°ãè¿ããŠããã ãã§ããããã äœãæäœããããšãããšãã°ã¡ãã¥ãŒã§è»¢éé床ãšããŠ19200bpsãéžæããããšãIDM_SPEED_19200ãšããã¡ãã»ãŒãžçªå·(ãã®çªå·ã¯å ã»ã©ãªãœãŒã¹ãšãã£ã¿ã§å®çŸ©ãããã®)ãæã£ãŠå²ã蟌ã¿(Windowsçšèªã§ã¯Message)ããã£ãŠããŠãå¶åŸ¡ãWinProc()ãšããcallback颿°(Messageã®åŠçãå°éã«è¡ã颿°)ã«æž¡ãããããªã®ã§ãåŸã¯WinProc()ã®äžã«ãIDM_SPEED_19200ããã£ãŠãããã転éé床ã19200bpsã«èšå®ããããšããåŠçã远å ããã°æžãããšã«ãªãã
ãã ãã®æ¹åŒã ãšãããããäžå®ééããšã«CPUã®è² è·ãã©ããã£ãŠååŸããã®?ããšããçåãããããååã®äŸã§ã¯Sleep()ã䜿ã£ãŠäžå®æéåŸ æ©ããŠããããWin32ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã¯èš±ãããªããããã§ãäžå®æéããšã«MessageãçºããTimerã仿ãããã®Timerã®Messageå°çã®ã¿ã€ãã³ã°ã§CPUè² è·ãååŸããããç»é¢è¡šç€ºãããšå ±ã«Arduinoã«ãã±ãããéããšããåŠçããã圢ãšãªããæ¬¡åããå°ããå®éã®ã³ãŒããã¿ãŠã¿ããã
(ç¶ã)
List 1:
/////////////////////////////////////////////////////////////////////////////
//
// ã¡ãã¥ãŒ
//
IDC_MY80LED MENU
BEGIN
POPUP "ãã¡ã€ã«(&F)"
BEGIN
MENUITEM "ã¢ããªã±ãŒã·ã§ã³ã®çµäº(&X)", IDM_EXIT
END
POPUP "ãã«ã(&H)"
BEGIN
MENUITEM "ããŒãžã§ã³æ
å ±(&A)...", IDM_ABOUT
END
END
List 2:
IDC_MY80LED MENU
BEGIN
POPUP "File(&F)"
BEGIN
MENUITEM "Exit(&X)", IDM_EXIT
END
POPUP "Transfer"
BEGIN
MENUITEM "Start", IDM_XFER_START
MENUITEM "Stop", IDM_XFER_STOP
END
POPUP "Settings..."
BEGIN
POPUP "Port"
BEGIN
MENUITEM "COM1:", IDM_PORT_COM1
MENUITEM "COM2:", IDM_PORT_COM2
MENUITEM "COM3:", IDM_PORT_COM3
MENUITEM "COM4:", IDM_PORT_COM4
MENUITEM "COM5:", IDM_PORT_COM5
MENUITEM "COM6:", IDM_PORT_COM6
MENUITEM "COM7:", IDM_PORT_COM7
MENUITEM "COM8:", IDM_PORT_COM8
END
POPUP "Speed"
BEGIN
MENUITEM "300bps", IDM_SPEED_300
MENUITEM "600bps", IDM_SPEED_600
MENUITEM "1200bps", IDM_SPEED_1200
MENUITEM "2400bps", IDM_SPEED_2400
MENUITEM "4800bps", IDM_SPEED_4800
MENUITEM "9600bps", IDM_SPEED_9600
MENUITEM "19200bps", IDM_SPEED_19200
MENUITEM "38400bps", IDM_SPEED_38400
END
POPUP "Refresh"
BEGIN
MENUITEM "0.1sec", IDM_Refresh_100
MENUITEM "0.2sec", IDM_Refresh_200
MENUITEM "0.5sec", IDM_Refresh_500
MENUITEM "1sec", IDM_Refresh_1000
END
END
POPUP "Help(&H)"
BEGIN
MENUITEM "About(&A)...", IDM_ABOUT
END
END