ã€ã³ãã
ãããããã€ãŒãµãããã¢ãžã¥ãŒã«ãŸãã¯ã·ãŒã«ãã®ãã¹ãŠã®è³Œå ¥è ã* duinoããLEDããªã³ã«ãã*ãµãŒããŒãäœæããå€ãã®äººãé ããæ©ãããããAndroidã¹ããŒããã©ã³ã®ãããªã¯ã©ã€ã¢ã³ãã«çž«ãä»ããŸããã æè¿ãç§ã¯èããŠããŸãã-ã¢ã³ãªã¢ã«ããŒãã¡ã³ãããã®ã¯ã©ã€ã¢ã³ããšããŠäœ¿çšããŠã¿ãŸãããïŒ UTã¯åªããèŠèŠåç°å¢ã§ãããããã«ããšã³ãžã³èªäœã¯éåžžã«äŸ¿å©ã§æè»ã§ãã
ã€ã³ã¿ãŒãã§ã€ã¹ã¬ãã«ã§ã®ãšãã£ã¿ãŒã®ç¥èã¯ååã§ãã UnrealScriptã®ãœãŒã¹ã¯ãã¯ã©ã€ã¢ã³ããèšè¿°ããŠããæ¹æ³ã«æ²¿ã£ãŠèª¬æãããŸãããäžè¬çã«UnrealScriptã«ã¯éåžžã®ã·ã¹ãã æ§æãšéåžžã«ç解ããããé¢æ°åããããŸãã Unreal EditorãåããŠèŠããããŸã è©ŠããŠã¿ãããšããæ¹ã¯ã VBKesha Introducing UnrealEngineã®èšäºãèªãããšããå§ãããŸãã 第1éš ãççŽã«èšã£ãŠãç§èªèº«ã¯ãã®ã³ãŒã¹ãç¶ããããšãæ¬åœã«æ¥œãã¿ã«ããŠããŸãããªããªããããšãã°ãããã¯ãŒã¯è€è£œã§ã¯ãç§ã¯å®å šãªç·ã ããã§ãã UT99çšã«äœæããããã¹ãŠã®æŠåšã¯ãã·ã³ã°ã«/ãªãã©ã€ã³ã¢ãŒãã§ã®ã¿æ£ããæ©èœããŸãã
ãµãŒããŒ
äžè¬ã«ãèªè ã¯Arduinoã§WebãµãŒããŒãäœæããåé¡ã«é¢ãããã¹ãŠããã§ã«ç¥ã£ãŠãããšæ³å®ãããŸãã ããã«ãããããããç¹°ãè¿ãã¯åŠç¿ã®æ¯ã§ããããã念ã®ããã«ããã®äŸã®ããªãšãŒã·ã§ã³ã®1ã€ãåŒçšããŸãã
ãµãŒããŒã®èª¬æ
ããŒããŠã§ã¢ã¯ENC28J60ã®ã€ãŒãµãããã¢ãžã¥ãŒã«ãŸãã¯ã·ãŒã«ãã§è¡šãããDrãDr.Webã®Ether_28J60ã©ã€ãã©ãªãã¹ã±ããã®äœæã«äœ¿çšãããŸãã ä¿®é士 ã ããã¯ã Nuelectronicsã©ã€ãã©ãªã®ã©ãããŒã§ãã ãããšãã ããã¢ãŒã«ã€ãã ïŒ
arduinoïŒ
\ librariesãã£ã¬ã¯ããªã«å±éããWebRemoteã®äŸãåãäžããŠãå¿
èŠã«å¿ããŠå€æŽããã¹ããŒã ïŒå¥ã®ã¢ãžã¥ãŒã«çšïŒã«åŸã£ãŠã¢ã»ã³ãã«ããŸãã
Arduinoã®D6ãã³ã«ã¯LEDãããïŒæµæåšãä»ããŠïŒãã¢ããŒãïŒãã©ã¹ïŒãäºéã«ãã«ãœãŒããã°ã©ã³ãã«åãã£ãŠããŸãã
ç§ã®ã¹ã±ããã¯æ¬¡ã®ããã«ãªããŸãã
ããŒãENC28J60 | Arduino |
SI | MOSIïŒD11ïŒ |
ãã | å³ISOïŒD12ïŒ |
SCL | SCKïŒD13ïŒ |
Rst | ãªã»ãã |
5V | 5V |
GND | GND |
CS | D10 |
ç§ã®ã¹ã±ããã¯æ¬¡ã®ããã«ãªããŸãã
#include "EtherShield.h" #include "ETHER_28J60.h" int outputPin = 6; static uint8_t mac[6] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; static uint8_t ip[4] = {192, 168, 0, 40}; static uint16_t port = 80; ETHER_28J60 e; void setup(){ e.setup(mac, ip, port); pinMode(outputPin, OUTPUT); } void loop(){ char* params; if (params = e.serviceRequest()){ e.print("<H1>Web Remote</H1>"); if (strcmp(params, "?cmd=on") == 0) digitalWrite(outputPin, HIGH); else if (strcmp(params, "?cmd=off") == 0) digitalWrite(outputPin, LOW); e.print("LED state: <br>"); if(digitalRead(outputPin)==1) e.print("on"); else e.print("off"); e.print(".<br>"); e.print("<A HREF='?cmd=on'>Turn on</A><br>"); e.print("<A HREF='?cmd=off'>Turn off</A>"); e.respond(); } }
ãã£ã¹ã¯
ãªã¯ãšã¹ããå®äºããã«ã¯ãå®è¡æã«ãã©ã¡ãŒã¿ãæž¡ãããšãã§ããã¯ã©ã€ã¢ã³ãã¯ã©ã¹ãå¿ èŠã§ãã 幞ããªããšã«ããã®ãããªã¯ã©ã¹ã¯ãã§ã«ååšããUBrowser.UBrowserHTTPClientãšåŒã°ããŸãã UT2003 / 2004ã«ã¯UBrowserããã¯ã¯ãããŸããããUWeb.WebApplicationãšãã®ãµãã¯ã©ã¹ããããŸãã UT99ãããªã¯ãšã¹ããéä¿¡ããããšãæ€èšããŠãã ãããå€ãããŒãžã§ã³ã®å Žåã¯ãé¡æšã«ãã£ãŠãããã·ã£ãŒãã«ããããšãã§ããŸãã UBrowserHTTPClientã¯GETãªã¯ãšã¹ãã®ã¿ãè¡ãããšãã§ããŸããããããæããŠPOSTããããšãã§ããŸãã å®éã«ã¯ãäžè¬ã«HTTPããããŒãä»»æã®æ¹æ³ã§å€æŽããHTTPãããã³ã«ã ãã§ãªãä»ã®æ¹æ³ãå®è£ ã§ããŸãã
UBrowserHTTPClientã«ã¯ãšãã£ã¿ãŒïŒã¡ãã·ã¥ãŸãã¯ãã¯ã¹ãã£ã¹ãã©ã€ãïŒã«èŠèŠçãªè¡šç€ºããããŸãã-ã¬ãã«ã«è¿œå ãããšãããã«è¡šç€ºãããŸããããšãã£ã¿ãŒã«ã¯è¡šç€ºãããŸããã ãããã£ãŠããã䟿å©ãªãã©ãããŒããäœæãããšåæã«ãã¬ãã«ã§ç·šéã§ããå€æ°ã®ãã¢ãæäŸããŸãã 芪ïŒã¹ãŒããŒã¯ã©ã¹ïŒãšããŠãããªã¬ãŒã¯ã©ã¹ã䜿çšããŸãã
ããã§ã VBKeshaã®èšäºã§èª¬æãããŠããªãããšãç¶ããŸãã ãã¥ãŒã®ããã¯ãŒã¯ã¹ããŒã¹ã®äžã«ãã©ãŠã¶åŒã³åºããã¿ã³ããããŸãïŒãããã¯æ¬¡ã®ããã«ãªããŸãïŒ ïŒ Actor Classesã«èå³ããããããŒã³ïŒæåã®ãã¿ã³ïŒã«äŒŒããã¿ã³ã§éããŸãã ãã®ãŠã£ã³ããŠã«ãã§ãã¯ããã¯ã¹ã®ããäžéšãã£ãŒã«ãããªãå Žåã¯ãã¡ãã¥ãŒã®è¡šç€º->ããã±ãŒãžã®è¡šç€ºã³ãã³ãã§æå¹ã«ããŸãã æå¹ã«ããå¿ èŠããããŸããç¬èªã®ã¹ã¯ãªããããã¯ãäœæãããããå¿ èŠã«ãªããŸãã
èŠæ±ã管çã§ãããã¹ãããªã¬ãŒãäœæããã«ã¯ããã®ãŠã£ã³ããŠã§Triggersã°ã«ãŒããéãïŒååã¯Windowsã¬ãžã¹ããªãšãã£ã¿ãŒãšåãã§ãïŒã TriggerãéžæããŠãã¿ã³ãæŒããŸã ã 衚瀺ããããŠã£ã³ããŠã®äžçªäžã®è¡ã¯äœæäžã®ã¯ã©ã¹ã®ããã¯ãã¡ã€ã«ã®ååã§ãäžçªäžã¯ã¯ã©ã¹åã§ãã ãããã£ãŠãEnterããŒãæŒããšãMyPackage.MyTriggerã¯ã©ã¹ãååŸãããŸãã åçŽãªstdHTTPTrig.stdHTTPTriggerãåŒã³åºããŸããã 次ã«ãã³ãŒãèªäœãèšè¿°ããŸãã
class stdHTTPTrigger expands Trigger; var() string BrowseURL,BrowseArg; function Touch(actor Other){ local UBrowserHTTPClient uhc; foreach allactors(class'UBrowserHTTPClient',uhc) uhc.destroy(); uhc=spawn(class'UBrowserHTTPClient'); if(uhc != none) uhc.Browse(browseurl,browsearg); }
ã¹ã¯ãªãããšãã£ã¿ãŒïŒãœãŒã¹ãèšè¿°ããå ŽæïŒã¯ãã¯ã©ã¹ãããã«ã¯ãªãã¯ããŠéããã¯ã©ã¹ãäœæãããšèªåçã«éããŸãã ã³ã³ãã€ã«ã¯ãã¿ã³ã§è¡ãããŸã ïŒå€æŽãããã¹ã¯ãªãããã³ã³ãã€ã«ããïŒãŠã£ã³ããŠã®äžéšã [ãã¹ãŠã³ã³ãã€ã«]ãã¯ãªãã¯ããããšã¯ãå§ãããŸãããæåã¯UEãé·ãéèããŠãããäžéšã®ã¯ã©ã¹ãèŠã€ãããªããšããäžæºãèšããŸãïŒå¿ èŠãªãã®ã ããèªã¿èŸŒãŸããããïŒã 3æ¬ã®æã§æ®åœ±ããŸãã ã³ã³ãã€ã«åŸãããã¯ãä¿åããå¿ èŠããããŸãããã®ãããã¢ã¯ã¿ãŒã¯ã©ã¹ãŠã£ã³ããŠã®äžéšã«ãã®ååïŒ[ããã±ãŒãžå]è¡ã«èšè¿°ãããŠãããã®ïŒãèŠã€ãããã®åã«ãã©ã°ãä»ããŠãã¯ãªãã¯ããŸãã ã ã¡ãªã¿ã«ããœãŒã¹ããã°ããä¿®æ£ããŠä¿åããå¿ èŠãããå Žåã¯ãã¯ã©ã¹ãã©ãŠã¶ãŠã£ã³ããŠãéããšäŸ¿å©ã§ãã ã¹ã¯ãªãããšãã£ã¿ãŒãçµäºããããšãªãïŒåŸè ããã«ã¹ã¯ãªãŒã³ã«å±éãããŠããå ŽåïŒã
ã芧ã®ãšãããèæ ®ãããããªã¬ãŒã¯ããªã倱瀌ã§ããã¬ãã«å ã®ãã¹ãŠã®ã¯ã©ã€ã¢ã³ãã®ã¢ã¯ã¿ãŒããã¹ãŠç Žæ£ãïŒã¡ã¢ãªãç¯çŽããããã ãïŒãæ°ããã¢ã¯ã¿ãŒãäœæããŠãæå®ããããªãœãŒã¹ã調ã¹ãŸãã browseïŒïŒãåŒã³åºããåŸãã¯ã©ã€ã¢ã³ãã¯ç Žæ£ãããŸãããåäœã«æéããããããã§ãã browseïŒïŒã¡ãœããã«ã¯ãTCPããŒããšã¿ã€ã ã¢ãŠãã®2ã€ã®ãªãã·ã§ã³ãã©ã¡ãŒã¿ããããŸãã åŸè ã䜿çšãããšããªã¯ãšã¹ãã®æåã远跡ãããªãœãŒã¹ã®å¯çšæ§ãè©äŸ¡ã§ããŸãã ãŸãããã®ã¯ã©ã€ã¢ã³ãã«ã¯ããµãŒããŒã®å¿çãšãšã©ãŒåŠçãè¿ãããã®ã³ãŒã«ããã¯é¢æ°ããããŸãã ãã®æ©èœã䜿çšããã«ã¯ããããã®é¢æ°ããªãŒããŒã©ã€ãããå¿ èŠããããŸããã€ãŸããç¬èªã®ãµãã¯ã©ã¹ãäœæãããã®èŠªã¯UBrowserHTTPClientã«ãªããŸãã
ãã¹ãã¬ãã«1
ãã¹ãã«ãŒã ã¯ã1ã€ã®PlayerStartãšå æºã®2ã€ã®ããªã¬ãŒã§æ§æãããŠããŸãã BrowseURLããããã£ã¯äž¡æ¹ã§åãã§ã-ããã¯ãµãŒããŒã®IPã¢ãã¬ã¹ã§ãã BrowseArgã¯ããªãœãŒã¹ã®ååïŒã¹ã©ãã·ã¥/ïŒãšããŒã¿ïŒçå笊ãšå€æ°ïŒã§æ§æããããã©ã¡ãŒã¿ãŒã§ããã€ãŸããäžæ¹ã«ã¯/ïŒCmd = onããããä»æ¹ã«ã¯/ïŒCmd = offããããŸãã ããããã£ãŠã£ã³ããŠã¯ããªããžã§ã¯ãã®RMBã§ããŸãã¯ããããã£ã§ããŸãã¯F4ã§éããŸãã F4ãæŒãããŠããªãå Žåã¯ãä»»æã®ãã¥ãŒãå·Šã¯ãªãã¯ããŸãã éšå±ãæããããF6ããŒãæŒããŸããéãããŠã£ã³ããŠïŒã¬ãã«ããããã£ïŒã§ãLevelInfoãèŠã€ãããŸã-DefaultGameTypeã singleplayerã«å€æŽããŠEnterããŒãæŒããŸãïŒUnrealShare.SinglePlayerã眮ãæããããŸãïŒãããããªããšããããã衚瀺ãããŠå¹²æžããŸãã 次ã«ãã¬ãã«ãæ§ç¯ãïŒãžãªã¡ããªã®åæ§ç¯ïŒãä¿åããŠå®è¡ããŸãã ããªã¬ãŒã«åŸã£ãŠãã©ã¹ã¿ãŒããæã¡ãŸãïŒããã©ã«ãã§ã¯ã¢ã¯ã·ã§ã³ã®ååŸã¯40ã§ãïŒã
ãµãŒããŒã®å¿çãååŸãã
ããã§ãäžè¬çãªçšèªã§ã¢ã€ãã¢ã確èªããåŸããã£ããã·ã¥ã©ã€ã³ã®éçºã«é²ãããšãã§ããŸãã åãæ¹æ³ã§æ°ããã¯ã©ã¹ã®ããã¯ã«ååãä»ããäºå®ã§ãå€ãããªãŒã¯ãããªã¬ãŒãå¿ èŠãªãå Žåã¯ããšãã£ã¿ãŒãçµäºããŠãïŒ ut99ïŒ \ã·ã¹ãã ãã£ã¬ã¯ããªã«ããpackname.uãã¡ã€ã«ãåŠçããŸãïŒããã¯åã¯ãã¯ã©ã¹ã§ããã¯ãšåŒã°ãããã®ã§ããïŒ ut99ïŒ -Unreal Tournamentãžã®ãã¹ïŒïŒããšãã°ãå€ããã£ã¬ã¯ããªã«ç§»åããŸãã ãŸãã¯ãå¿ èŠãªãã®ã§ããã«ãã¹ã±ããã«å ¥ããŸãã ãšãã£ã¿ãŒãåã³èµ·åããŸãã
ã¬ãã«ã€ãã³ã
Uãšââã³ãžã³ã«ã¯ãé©åãªããããã£ãæã€ãã¹ãŠã®ã¢ã¯ã¿ãŒãé çªã«ãã€ãã¹ããé©åãªé¢æ°ãåŒã³åºãããšãé€ããŠãã€ãã³ããäœæããããã®ä»ã®ã¡ã«ããºã ã¯ãããŸããã ããªã¬ãŒã®ãã¹ãŠã®ã¿ã€ãã§ãTagããããã£ãããã«äœ¿çšãããŸã-ã¿ã€ãåïŒãªããžã§ã¯ãåïŒã®å€æ°ãšãããªã¬ãŒïŒïŒãããªã¬ãŒè§£é€ïŒïŒé¢æ°ã UntriggerïŒïŒã¯ãããšãã°åŒãæžã§ã®ã€ãã³ãã®ãç Žå£ãã®å¹æãç®çãšããŠããŸãã éå£éšã®äžå€®ã«ããã¢ã圢æããã ãŒããŒïŒã ãŒããŒããŸãã¯ç§»åå¯èœãã©ã·-移åãã©ã·ãŸãã¯ãã©ã·ïŒã®Tagããããã£ã§æå®ãããã€ãã³ããäœæããããªã¬ãŒãèšå®ãããŸãã ãã¬ã€ã€ãŒãããªã¬ãŒã®ç¯å²ã«å ¥ããšãã ãŒããŒã¯TriggerïŒïŒé¢æ°ãåŒã³åºããååŸãé¢ãããšUntriggerïŒïŒé¢æ°ãåŒã³åºãããŸãã ãã®çµæããã¬ã€ã€ãŒãããªã¬ãŒã®ç¯å²å ã«ããéã®ã¿ãã¢ãéããŸãã ã¬ãã«ã®æ§ç¯ã«ããã䜿ãããããšäºææ§ãšãã2ã€ã®ç®æšãè¿œæ±ããŸãã
ãã®äŸã§ã¯ãå®éã«ã¯ããªã³/ãªãç¶æ ã®ã¿ããã§ãã¯ãããŸãã ããã¯ãæååå ã®éšåæååãæ€çŽ¢ããæ¡ä»¶ãšæ©èœã䜿çšããŠè¡ãããŸãã ãã ãããµãŒããŒã®å¿çããç¹å®ã®å€ãããšãã°RGB LEDã®PWMã¬ãã«ãåŒãåºãåã«ããã®ã·ã¹ãã ã®éçºã劚ãããã®ã¯ãããŸããã ãã ããRGB LEDã«ã¯RGB圢åŒã®ããŒã¿ãå¿ èŠã§ãããUnrealã§ã¯è²ãHSBã«å€æããå¿ èŠãããããšã«æ³šæããŠãã ããã
æ°ããããªã¬ãŒã«ã¯ããµãŒããŒå¿çã§æ€çŽ¢ããå¿ èŠã®ãã8ã€ã®æååã®ãµã³ãã«ãšãæååãèŠã€ãã£ã/èŠã€ãããªãã£ãå Žåã«ã€ãã³ããäœæ/ç Žæ£ããããã®åãæ°ã®ååãå«ãŸããŸãã å¿ èŠã«å¿ããŠãå¢å ãåé€ãªã©ãè¡ãããšãã§ããŸããHTTPãšã©ãŒã®å Žåãã€ãã³ãã®äœæã®ã¿ãæäŸãããŸãããã®å ŽåãUntriggerã䜿çšããå¿ èŠã¯ãããŸããã ç¹°ãè¿ããŸããã誰ãè¿œå ãçŠæ¢ããŠããŸããã
ã¯ã©ã¹ãã©ãŠã¶ïŒActor ClassesïŒãéãããã®äžã§ã°ã«ãŒãActor \ Info \ InternetInfo \ InternetLink \ TcpLink \ UBrowserBufferedTcpLinkãéã ãã¯ã©ã¹UBrowserHTTPClientãéžæãããã¿ã³ãã¯ãªãã¯ããŸã ïŒæ°ããã¹ã¯ãªããïŒã ã¯ã©ã¹åãšããã¯ãæå®ããŠãã³ãŒããèšè¿°ããŸãã
class stdHTTPBrowser expands UBrowserHTTPClient; var string SearchRespData[8]; var name SearchRespEvent[8]; var name SearchNotInRespEvent[8]; var name SearchRespCancelEvent[8]; var name SearchNotInRespCancelEvent[8]; var int HTTPErrCode[8]; var name HTTPErrEvent[8]; event HTTPReceivedData(string Data){ local int i; local actor a; for(i=0;i<=7;i++){ if(SearchRespData[i] != ""){ if(InStr(Caps(Data),Caps(SearchRespData[i])) != -1){ if(SearchRespEvent[i] != '') foreach allactors(class'Actor',a,SearchRespEvent[i]) a.Trigger(self,self.instigator); if(SearchRespCancelEvent[i] != '') foreach allactors(class'Actor',a,SearchRespCancelEvent[i]) a.Untrigger(self,self.instigator); }else{ if(SearchNotInRespEvent[i] != '') foreach allactors(class'Actor',a,SearchNotInRespEvent[i]) a.Trigger(self,self.instigator); if(SearchNotInRespCancelEvent[i] != '') foreach allactors(class'Actor',a,SearchNotInRespCancelEvent[i]) a.Untrigger(self,self.instigator); } } } } event HTTPError(int Code){ local int i; local actor a; for(i=0;i<=7;i++){ if(HTTPErrCode[i] == Code && HTTPErrEvent[i] != '') foreach allactors(class'Actor',a,HTTPErrEvent[i]) a.Trigger(self,self.instigator); } }
ååIMHOã¯ãäžåœèªããã·ã¢èªãªã©ã®æååã«ããŒã«ã©ã€ãºãããæååãããããšãé€ããŠãæååãšããã»ã©éãã¯ãããŸããããã ãããã§ãã¯ããæ¡ä»¶ã§ã¯ã空ã®åå㯠''ïŒåäžåŒçšç¬Šã§ïŒã空æååã¯ããïŒäºéåŒçšç¬ŠïŒã§ãã ããŒã¯ãŒãã€ãã³ãã¯ãWindows APIã®ãœãŒã¹ã³ãŒãã®ã³ãŒã«ããã¯ãšåãã§ãã èŠããã«ãã³ãŒã«ããã¯ãã€ãŸããé¢æ°ã¯ã¯ã©ã¹ã¹ã¯ãªããã§ã¯ãªããå€éšã€ãã³ãã«ãã£ãŠããªã¬ãŒãããŸãã
ã³ã¡ã³ããäºæ³ããããšã¯ãBoã®ã·ã§ããã®ãç©Žã«å ¥ã£ããã«äŒŒãŠãããããAdd YourHTTPClientClass hereã³ãã³ãã䜿çšããŠãã®ã¯ã©ã¹ãã¬ãã«ã«è¿œå ããªãããšãå¬ããæããŸãã ããªã¬ãŒå ã®spawnïŒïŒé¢æ°ããããè¡ããŸãã ç§ã®æèŠã§ã¯ãããã¯ãã®ãããªãã®ã«æãé©ããã¯ã©ã¹ã§ãã ãããã£ãŠãã¹ã¯ãªãããšãã£ã¿ãŒãŠã£ã³ããŠãéããã¯ã©ã¹ãã©ãŠã¶ãŒã§ã°ã«ãŒãActor \ Triggersãéãã TriggerãéžæããŸãã [æ°èŠã¹ã¯ãªãã]ãã¯ãªãã¯ããŠãããªã¬ãŒã³ãŒããèšè¿°ããŸãã
class stdHTTPTriggerX expands Trigger; var() enum EHTTPTriggerLaunchType{ // launch type HTTLT_Touch, HTTLT_Trigger } HTTPTriggerLaunchType; var() string SearchRespData[8]; // search template in HTTP response var() name SearchRespEvent[8]; // events generated on match var() name SearchNotInRespEvent[8]; // events generated if no match var() name SearchRespCancelEvent[8]; // events cancelled on match var() name SearchNotInRespCancelEvent[8]; // events cancelled if no match var() int HTTPErrCode[8]; // HTTP error templates var() name HTTPErrEvent[8]; // events generated if defined HTTP error(s) ocurrs var() string BrowseURL,BrowseArg; // URL var() bool bAutoExec; // enable auto launch var stdHTTPBrowser hClient; // client handle function CreateClientRequest(){ local int i; if(hClient != none) hClient.destroy(); // destroy previous request hClient=spawn(class'stdHTTPBrowser'); // create if(hClient != none){ for(i=0;i<=7;i++){ hClient.SearchRespData[i]=self.SearchRespData[i]; // transfer configs hClient.SearchRespEvent[i]=self.SearchRespEvent[i]; hClient.SearchNotInRespEvent[i]=self.SearchNotInRespEvent[i]; hClient.SearchRespCancelEvent[i]=self.SearchRespCancelEvent[i]; hClient.SearchNotInRespCancelEvent[i]=self.SearchNotInRespCancelEvent[i]; hClient.HTTPErrCode[i]=self.HTTPErrCode[i]; hClient.HTTPErrEvent[i]=self.HTTPErrEvent[i]; } hClient.Browse(browseurl,browsearg); // launch } } function Trigger(actor Other,pawn EventInstigator){ // triggered launch if(HTTPTriggerLaunchType == HTTLT_Trigger) CreateClientRequest(); } function Touch(actor Other){ // proximity launch local actor a; if(IsRelevant(Other) && HTTPTriggerLaunchType == HTTLT_Touch){ if(ReTriggerDelay > 0){ if(Level.TimeSeconds-TriggerTime < ReTriggerDelay) return; TriggerTime=Level.TimeSeconds; } CreateClientRequest(); if(Message != "") Other.Instigator.ClientMessage(Message); if(bTriggerOnceOnly) SetCollision(False); } } function PostBeginPlay(){ // autoexec launch if(bAutoExec) CreateClientRequest(); }
ããã§ã¯ããã®ããªã¬ãŒã«ãã£ãŠäœæãããã¯ã©ã€ã¢ã³ããªããžã§ã¯ãã®ã¿ãç Žæ£ãããŸãã ããã«ãããè€æ°ã®ã¯ã©ã€ã¢ã³ããåæã«åäœã§ããŸãã ããŒã¯ãŒãnone-ãªããžã§ã¯ãã®ç©ºã®ååããªããžã§ã¯ããäœæããããã©ããã確èªã§ããŸãã self-èªåã®ãªããžã§ã¯ãã®ååãèªåèªèº«ãåç §ã§ããŸãã èªå·±è¡šçŸã å€æ°åã®åã«èšè¿°ããããšã¯ã§ããŸããããããã«ããã³ãŒãããããã«ãããªããŸãã varã®åŸã®æ¬åŒ§ïŒïŒã¯ããã®å€æ°ãã¢ã¯ã¿ãŒããããã£ãŠã£ã³ããŠã«è¡šç€ºãããããšã瀺ããŸãã ã€ãŸããã¯ã©ã€ã¢ã³ãã¯ã©ã¹ã«ã¯ãããã®ããããã£ããããŸãããã¹ã¯ãªããããã®ã¿ç·šéã§ããŸãããããè¡ãCreateClientRequestïŒïŒã«ã¯ã«ãŒãããããŸãã IsRelevantïŒïŒã¯ããã®ããããã£ãšã®äºææ§ã確ä¿ããããã«Engine.Triggerã¯ã©ã¹ããåçšãããŸãã ReTriggerDelayã®æ¡ä»¶ã«ãããæå®ããééãããé »ç¹ã«æäœãå¶éããããšã¯ã§ããŸããã
ã³ã³ãã€ã«ïŒã¹ã¯ãªãããšãã£ã¿ãŒã§å€æŽãããã¹ã¯ãªãããã³ã³ãã€ã«ïŒããã©ãŠã¶ãŒã«ããã¯ãä¿åããŸãã
å€æ°ã®èª¬æ
HTTPTriggerLaunchType | æã¡äžãã¿ã€ã |
SearchRespData [] | æ€çŽ¢ãã³ãã¬ãŒã |
SearchRespEvent [] | ãã¿ãŒã³ãèŠã€ãã£ããšãã«ããªã¬ãŒãããã€ãã³ã |
SearchNotInRespEvent [] | ãã³ãã¬ãŒããæ¬ èœããŠãããšãã«ããªã¬ãŒãããã€ãã³ã |
SearchRespCancelEvent [] | ãã³ãã¬ãŒããèŠã€ãã£ããšãã«ç Žæ£ãããã€ãã³ã |
SearchNotInRespCancelEvent [] | ãã³ãã¬ãŒãããªãå Žåã«ç Žå£ãããã€ãã³ã |
HTTPErrCode [] | HTTPãšã©ãŒã³ãŒã |
HTTPErrEvent [] | HTTPãšã©ãŒã«ãã£ãŠããªã¬ãŒãããã€ãã³ã |
BrowseURL | ãµãŒããŒã¢ãã¬ã¹ |
BrowseArg | ãªãœãŒã¹ãšãã©ã¡ãŒã¿ãŒ |
bAutoExec | ã¬ãã«ãããŒããããšãã®èªåã¯ãšãªå®è¡ |
ããªã¬ãŒã¿ã€ããHTTLT_Triggerã§ããå Žåãããªã¬ãŒé¢æ°ãåŒã³åºãããå Žåã«ã®ã¿ããªã¬ãŒãããŸããããšãã°ãTagããããã£ïŒEventsã°ã«ãŒãïŒã§æå®ãããã€ãã³ããçºçããå Žåãªã©ã§ãã
bAutoExecãtrueã®å Žåãããªã¬ãŒã¯ã²ãŒã ã®éå§åŸã«èªåçã«ãªã¯ãšã¹ããè¡ããŸãã ããã¯ããµãŒããŒã®ç¶æ ã«å¿ããããªã¬ãŒã®åæã€ã³ã¹ããŒã«ãã€ãŸãåæã«äœ¿çšãããŸãã
ãã¹ãã¬ãã«2
PlayerStartã䜿çšããéšå±ã®å æºã¯éåžžã®å æºã§ãã ããªã¬ãŒã«ãŒã ã®å€©äºå æºã¯TriggerLightã§ãã LEDã®ç¶æ ãè€è£œããŸãã åãéšå±ã®ä»ã®2ã€ã®å æºã¯ãåã«ããã«ãç §ãããŸãã æåã®å Žæã¯TriggerLightã§ãã Actorã¯ã©ã¹ïŒ Actor \ Lightã«ãããŸã ïŒã§éžæãã倩äºãã¯ã¹ãã£ã®RMBãã¯ãªãã¯ããŠãAdd TriggerLightãéžæããŠè¿œå ããŸãã äœããã®çç±ã§ã¯ã©ã¹ãã©ãŠã¶ã«2ã€ãããŸãããã©ã¡ããæ©èœãããããã©ã¡ãããéžæããŸãã
TriggerLightã°ã«ãŒãã®ããããã£ã«ã¯è§ŠããŸãããbInitiallyActiveã¯falseã§ããããã§ãã ãªããžã§ã¯ãã°ã«ãŒããéããInitialStateãTriggerControlã«å€æŽããŸãã ããããã£ãã¯ãªãã¯ããŠãããããããŠã³ã¡ãã¥ãŒã衚瀺ãããªãå ŽåïŒWin 7ã§ã®ãã°ã®å¯èœæ§ïŒãç¢å°ãããŒããŒãããå·Šå³ã«ç§»åããŸãã 次ã«ãã€ãã³ãã°ã«ãŒããéããã¿ã°ã[ãªã]ããåèªã«å€æŽããŸãã
ããªã¬ãŒã¯åãæ¹æ³ã§è¿œå ãããŸãïŒ ã¢ã¯ã¿ãŒ\ããªã¬ãŒ\ããªã¬ãŒã«ãããŸã ïŒã ããã«ãæãããšãã§ããŸãã-ç§ã¯ãããªãç解ããããããŸããã Mine.utxã®ãã¯ã¹ãã£ã
ããªã¬ãŒã®ããããã£ãè¡šã«ç€ºããŸãã
HTTPTrigger0 | HTTPTrigger1 | HTTPTrigger2 | |
bAutoExec | åœ | åœ | æ¬åœ |
BrowseArg | /ïŒcmd = on | /ïŒcmd = off | / |
BrowseURL | 192.168.0.40 | 192.168.0.40 | 192.168.0.40 |
HTTPTriggerLaunchType | HTTLT_Touch | HTTLT_Touch | HTTLT_Trigger |
SearchNotInRespCancelEvent [0] | ã©ã€ãã³ | ã©ã€ãã³ | ã©ã€ãã³ |
SearchRespEvent [0] | ã©ã€ãã³ | ã©ã€ãã³ | ã©ã€ãã³ |
SearchRespData [0] | LEDã®ç¶æ ïŒ<br>ãªã³ | LEDã®ç¶æ ïŒ<br>ãªã³ | LEDã®ç¶æ ïŒ<br>ãªã³ |
çµæ
Bratunyaã¯ãã§ã«ãããªã®äžã§1ã€ã®ã³ã¡ã³ããæžããŠããã圌ã¯åã«ããã»ã¹å šäœã«åè¡ããã ã©ãããã楜ãã¿ã®ããã«ã圌ã¯ã¢ããŒããæãã圌ã®æããã«ãããã«ã¹ããŒãããŠã¹ã®å¶åŸ¡ãçµã³ã€ããããšã«æ±ºããŸããã ãããããã¡ããããããGETãªã¯ãšã¹ãã®å¯äžã®çšéã§ã¯ãããŸããã ããšãã°ãã»ã³ãµãŒã®èªã¿åãå€ã«å¿ããŠãå¿ èŠãªå€§æ°çŸè±¡ãæã€ãã¬ãŒã€ãŒã®ã«ãŒããèªã¿èŸŒãUTãµãŒããŒãäœæã§ããŸãã äžè¬çã«ãä»ã§ã¯Webã€ã³ã¿ãŒãã§ãŒã¹ãæ¬åœã«ã«ã©ãã«ã«ããããšãã§ããŸãã