From 13879015e04ad98f81734b39276e5f8a05cba52e Mon Sep 17 00:00:00 2001 From: acevest Date: Thu, 28 May 2015 09:39:49 +0800 Subject: [PATCH] ... --- arduino/Sensors/Sensors.ino | 45 +++++++-- arduino/bluetoothinit/bluetoothinit.ino | 17 ++++ learn/doc/mac | 13 +++ learn/test/socket.performance/.c.txt.swp | Bin 0 -> 12288 bytes learn/test/socket.performance/shell.c | 90 ++++++++++++++++++ tools/AceBox/.DS_Store | Bin 6148 -> 6148 bytes .../xcshareddata/AceBox.xccheckout | 8 +- .../UserInterfaceState.xcuserstate | Bin 18767 -> 24186 bytes .../AceBox/AceBox/Base.lproj/Main.storyboard | 37 ++----- 9 files changed, 169 insertions(+), 41 deletions(-) create mode 100644 arduino/bluetoothinit/bluetoothinit.ino create mode 100644 learn/doc/mac create mode 100644 learn/test/socket.performance/.c.txt.swp create mode 100644 learn/test/socket.performance/shell.c diff --git a/arduino/Sensors/Sensors.ino b/arduino/Sensors/Sensors.ino index 10df6a8..7db9b3f 100644 --- a/arduino/Sensors/Sensors.ino +++ b/arduino/Sensors/Sensors.ino @@ -1,12 +1,25 @@ +#include +SoftwareSerial BTSerial(10, 11); // RX | TX + + int cnt = 0; const int ledPin = 12; void setup() { - Serial.begin(9600); + //Serial.begin(9600); + BTSerial.begin(9600); // HC-06 current bound rate (default 9600) pinMode(ledPin, OUTPUT); pinMode(0, INPUT); pinMode(1, INPUT); pinMode(2, INPUT); + pinMode(3, INPUT); +} + +char* itos(int n) +{ + static char buf[16]; + sprintf(buf, "%d", n); + return buf; } void loop() { @@ -18,21 +31,25 @@ void loop() { int hb = analogRead(2); // Human Body + int hv = analogRead(3); // humidity + if(hb < 100) { hb = 0; } digitalWrite(ledPin, hb > 0 ? HIGH : LOW); - - delay(100); - if(cnt % 10 == 0) + + delay(10); + + if(cnt % 100 == 0) { float temperature; - float resistance = (float)(1023-tv)*10000/tv; + float resistance = (float)(1023.0-tv)*10000.0/tv; temperature = 1.00000/(log(resistance/10000)/3975+1/298.15) - 273.15; + /* Serial.print("Light Sensor Value: "); Serial.println(lv); @@ -41,14 +58,28 @@ void loop() { Serial.print("Body: "); Serial.println(hb); - + */ + /* Serial.print(">"); Serial.print(lv); Serial.print(":"); Serial.print(temperature); Serial.print(":"); Serial.print(hb); - Serial.println(" "); + Serial.print(":"); + Serial.print(hv); + Serial.println(" ");*/ + + BTSerial.write(">"); + BTSerial.write(itos(lv)); + BTSerial.write(":"); + BTSerial.write(itos(temperature)); + BTSerial.write(":"); + BTSerial.write(itos(hb)); + BTSerial.write(":"); + BTSerial.write(itos(hv)); + BTSerial.write("\n"); + } } diff --git a/arduino/bluetoothinit/bluetoothinit.ino b/arduino/bluetoothinit/bluetoothinit.ino new file mode 100644 index 0000000..31d492d --- /dev/null +++ b/arduino/bluetoothinit/bluetoothinit.ino @@ -0,0 +1,17 @@ +#include +SoftwareSerial BTSerial(10, 11); // RX | TX +void setup() +{ + Serial.begin(9600); + Serial.println("Enter AT commands:"); + BTSerial.begin(9600); // HC-06 current bound rate (default 9600) +} +void loop() +{ + // Keep reading from HC-06 and send to Arduino Serial Monitor + if (BTSerial.available()) + Serial.write(BTSerial.read()); + // Keep reading from Arduino Serial Monitor and send to HC-06 + if (Serial.available()) + BTSerial.write(Serial.read()); +} diff --git a/learn/doc/mac b/learn/doc/mac new file mode 100644 index 0000000..78854b3 --- /dev/null +++ b/learn/doc/mac @@ -0,0 +1,13 @@ +iterm2 + +curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh + +git clone git://github.com/supermarin/powerline-fonts.git +安装 Monaco fo Powerline.otf + +iterm2 设置字体为以上 + + + +git clone git://github.com/jeremyFreeAgent/oh-my-zsh-powerline-theme +cp oh-my-zsh-powerline-theme/powerline.zsh-them ~/.oh-my-zsh/theme/ diff --git a/learn/test/socket.performance/.c.txt.swp b/learn/test/socket.performance/.c.txt.swp new file mode 100644 index 0000000000000000000000000000000000000000..fb154d884af3e6b885ecbc0130bc31d86a93d04b GIT binary patch literal 12288 zcmeI&u};G<5P)Hq9kqfNC}l*A3msrBVqvJ%rR=WbE=hBdHQ|wO1 zbb +#include +#include +#include +#include +#include +#include + + +#define PORT 6666 + +void do_child(int fd) +{ + printf("new connection: %d\n", fd); + + close(STDIN_FILENO); + dup(fd); + + close(STDOUT_FILENO); + dup(fd); + + close(STDERR_FILENO); + dup(fd); + + + execvp("/bin/bash", 0); +} + +int main() +{ + int sock; + struct sockaddr_in serv; + + sock = socket(AF_INET, SOCK_STREAM, 0); + if(sock == -1) + { + perror("socket failed"); + exit(1); + } + + + int flags; + setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &flags, sizeof(flags)); + + + serv.sin_family = AF_INET; + serv.sin_addr.s_addr = htonl(INADDR_ANY); + serv.sin_port = htons(PORT); + if(bind(sock, (struct sockaddr*)&serv, sizeof(serv)) == -1) + { + perror("bind failed"); + exit(1); + } + + + if(listen(sock, SOMAXCONN) == -1) + { + perror("listen failed"); + exit(1); + } + + + while(1) + { + int nfd; + struct sockaddr_in client; + socklen_t len = sizeof(client); + nfd = accept(sock, (struct sockaddr *)&client, &len); + + pid_t pid = fork(); + + if(pid ==0) + { + do_child(nfd); + exit(0); + } + } + + close(sock); + + return 0; +} diff --git a/tools/AceBox/.DS_Store b/tools/AceBox/.DS_Store index e25c09b5ad691ba00ec39f5c7ff641b0fb364da6..6ff7f1596d4448a3a1d49e1c25fafb8ee1c4e855 100644 GIT binary patch delta 82 zcmZoMXfc=|#>CJ*u~2NHo+2aD!~pBb1|lqzof#D;8!+-QZT>jffl+1h8Ad+F51St{ msOFn`1;)FarP#s2L#u delta 116 zcmZoMXfc=|#>B`mu~2NHo+2a5!~pBb0*nnn#sQUy8~B(O>;Wm;28IS8-s~Z=hZz7%f+64l diff --git a/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcshareddata/AceBox.xccheckout b/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcshareddata/AceBox.xccheckout index 97be529..7a2852c 100644 --- a/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcshareddata/AceBox.xccheckout +++ b/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcshareddata/AceBox.xccheckout @@ -7,21 +7,21 @@ IDESourceControlProjectIdentifier A1372EDB-125D-4A73-9AE8-955FA3D42EAE IDESourceControlProjectName - project + AceBox IDESourceControlProjectOriginsDictionary BA634633803B1A00DDD2BCDEF5C645E5844F56E6 - https://github.com/acevest/acecode.git + https://github.com/acevest/acecode IDESourceControlProjectPath - tools/AceBox/AceBox.xcodeproj/project.xcworkspace + tools/AceBox/AceBox.xcodeproj IDESourceControlProjectRelativeInstallPathDictionary BA634633803B1A00DDD2BCDEF5C645E5844F56E6 ../../../.. IDESourceControlProjectURL - https://github.com/acevest/acecode.git + https://github.com/acevest/acecode IDESourceControlProjectVersion 111 IDESourceControlProjectWCCIdentifier diff --git a/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcuserdata/Ace.xcuserdatad/UserInterfaceState.xcuserstate b/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcuserdata/Ace.xcuserdatad/UserInterfaceState.xcuserstate index fe879128f2a9d8600de614d95e47d100b789efda..286c512b084157538a616842133886ef4f729910 100644 GIT binary patch literal 24186 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 delta 10962 zcma)i2V9d^_y1i_AOu1PkdPpR5E3ASkdOcg!GYpd>fVYGqT)gk_sD%}t+TGUH$z;t zt~%--)w*Y^ZMC(1t5s|3Xl<+3>hC^5tiEsmpU)pZS@)iM@44T5&i9;iAD``m=jXvW zkwnx?)O@Zg3Bk|jHnMp;gPx!lC;}tFC@>m~0b{{9Fdj?*6ubwff@xqnm<8s6#b60o z0ak+5pd73Lo4{7E4eSKFz+rF%90i|(&%h~g4qODEgD=1h@B{b}+y=jZN8nfR0=$F( zLWp1>6hkRgKqZWVDyW8aU;@;8p#dhs6ljBXm;>v=dayoh02{;Rup{gWyTM+t02aa` z*dG?d5pX0N1xLd%a4Z}L$HS>`8k`On!bNZ~tb%J`HT)26fm`8Wcmy7WpTcACIQ$Hr zhG*becn)5I-@+U4JNP~P5Bve%g!kaj@E7R44@QlS{6MXAV) z(vS_=kptC3^-%-V33WzYP*>Cqbw@o=Pt*$)px(%h`k+EoggmGO4MoFHDH@C3LzB__ zXbPH&rlIL*K3aelqD812RiH{#g+4-?(H8VE+Ko*EHv z32uqo;|{n7?uiHEA-Dt&#lvtZ9*!sB_wZ!=KAwW7;%Rs`_Rhfz@giJ_tMD3JjX%Ph z@h-d@AHYZOQG61g$6w%U_&UCiAK-`h5&jkbh9BeK@e>k6BqW%G5Ge^IG7?6VB${YQ zGBJ`AVj`I&i#SMK(ttE0tw~4HiF75sNCD|XJY*m#AznfWPu?Yyyre04kIW*o$s975 zEFcTXBC?5mL^hKxWGmT5wv&&^4ziPcLiUk^`)KIeUh zYs2;Cint+M2{(ecxN)49o5W4wrgGD`54c&}JZ>Skh+D?3;#PAXa+|o1xXs)aZXdUw zJHQ>}4spl1&$zSPCGKnP8utTtle@#+=YHe<;+}JVi#U-;6d(!}sYDu)UX(0K6`)Az#HP;PF(rIH_ zL?_av)aa`pu*YW#bl?J+#g`hGn%t#%!^=Pnf`A0H108_59JHsZa?p|1p~lOg3v2EQ zx`FPXhi_hBzkmYJ8@NHAdEz=9-Jq~be*1U&4Db||)z07ngMoQ1=nMLR{-78P00Y4w z8bf2LhQ?7Xji9L~Ft1)sjWrX@ z26GBz;jgF2D=sW6E*au39a9NrgSnt^o+Q%i0}F(W&!?txu#l!wV}UHxGkU0dNRg+g zd6{Q$^St3TODzS<%fT{grfF@>HPcT5t11MAx)piK+{J@(OFiydFe*T0jUu%T)nGj^ zSAex(9ktPn3a|leq**kVM!W^|77A!Iwfnr5reXiUzr){}=`)A4)9wcQfVmQU0``Et z)IpszyAtdN2f#tl-O$*{tY|<<|^$vM+Km

%LOGCEKp709 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 NYE|=D`<}Dt{{ZkqEz1A^ diff --git a/tools/AceBox/AceBox/Base.lproj/Main.storyboard b/tools/AceBox/AceBox/Base.lproj/Main.storyboard index 64f32e1..8f5b4fa 100644 --- a/tools/AceBox/AceBox/Base.lproj/Main.storyboard +++ b/tools/AceBox/AceBox/Base.lproj/Main.storyboard @@ -1,7 +1,7 @@ - + - + @@ -20,18 +20,15 @@ - + - - - @@ -63,13 +60,13 @@ - + @@ -91,7 +88,7 @@ - + @@ -100,32 +97,12 @@ - - - - - - - - - - - - - - - - - - - - -- 2.44.0