From 97f6816da959de17946e1471b3917d98e01be46e Mon Sep 17 00:00:00 2001 From: AceVest Date: Thu, 11 Jan 2018 00:19:26 +0800 Subject: [PATCH] ... --- arduino/clockintr/clockintr.ino | 96 ++++++++++ arduino/ir/irrecv/irrecv.ino | 179 ++++++++++++++++++ arduino/ir/irsend/irsend.ino | 46 +++++ documents/ArduinoClockInterrupt.md | 126 ++++++++++++ ...26\347\272\277\347\274\226\347\240\201.md" | 45 +++++ tools/AceBox/AceBox.xcodeproj/project.pbxproj | 12 ++ .../UserInterfaceState.xcuserstate | Bin 93552 -> 114416 bytes tools/AceBox/AceBox/AppDelegate.swift | 12 +- .../AceBox/AceBox/Base.lproj/LaunchScreen.xib | 25 ++- .../AceBox/AceBox/Base.lproj/Main.storyboard | 2 +- tools/AceBox/AceBox/Info.plist | 12 ++ .../AceBox/AceBox/SecondViewController.swift | 76 +++++++- 12 files changed, 615 insertions(+), 16 deletions(-) create mode 100644 arduino/clockintr/clockintr.ino create mode 100644 arduino/ir/irrecv/irrecv.ino create mode 100644 arduino/ir/irsend/irsend.ino create mode 100644 documents/ArduinoClockInterrupt.md create mode 100644 "documents/\351\201\245\346\216\247\347\272\242\345\244\226\347\272\277\347\274\226\347\240\201.md" diff --git a/arduino/clockintr/clockintr.ino b/arduino/clockintr/clockintr.ino new file mode 100644 index 0000000..25f0363 --- /dev/null +++ b/arduino/clockintr/clockintr.ino @@ -0,0 +1,96 @@ + +int led0 = 7; +int led1 = 8; +int led2 = 12; +int cnt0 = 0; +int cnt1 = 0; +int cnt2 = 0; +void setup(){ + Serial.begin(9600); + pinMode(LED_BUILTIN, OUTPUT); + pinMode(led0, OUTPUT); + pinMode(led1, OUTPUT); + pinMode(led2, OUTPUT); + + cli();//stop interrupts + +#if 0 // 设置timer0会影响到loop函数里调用的delay,会使其失效 + //set timer0 interrupt at 2kHz + TCCR0A = 0;// set entire TCCR0A register to 0 + TCCR0B = 0;// same for TCCR0B + TCNT0 = 0;//initialize counter value to 0 + // set compare match register for 2khz increments + OCR0A = 124;// = (16*10^6) / (2000*64) - 1 (must be <256) + // turn on CTC mode + TCCR0A |= (1 << WGM01); + // Set CS01 and CS00 bits for 64 prescaler (参考上表) + TCCR0B |= (1 << CS01) | (1 << CS00); + // enable timer compare interrupt + TIMSK0 |= (1 << OCIE0A); +#endif + +#if 1 + //set timer1 interrupt at 1Hz + TCCR1A = 0;// set entire TCCR1A register to 0 + TCCR1B = 0;// same for TCCR1B + TCNT1 = 0;//initialize counter value to 0 + // set compare match register for 1hz increments + OCR1A = 15624;// = (16*10^6) / (1*1024) - 1 (must be <65536) + // turn on CTC mode + TCCR1B |= (1 << WGM12); + // Set CS10 and CS12 bits for 1024 prescaler (参考上表) + TCCR1B |= (1 << CS12) | (1 << CS10); + // enable timer compare interrupt + TIMSK1 |= (1 << OCIE1A); +#endif + +#if 1 + //set timer2 interrupt at 8kHz + TCCR2A = 0;// set entire TCCR2A register to 0 + TCCR2B = 0;// same for TCCR2B + TCNT2 = 0;//initialize counter value to 0 + // set compare match register for 8khz increments + OCR2A = 249;// = (16*10^6) / (8000*8) - 1 (must be <256) + // turn on CTC mode + TCCR2A |= (1 << WGM21); + // Set CS21 bit for 8 prescaler (参考上表) + TCCR2B |= (1 << CS21); + // enable timer compare interrupt + TIMSK2 |= (1 << OCIE2A); +#endif + + sei();//allow interrupts + +}//end setup + +void loop() { + Serial.println("High"); + digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) + delay(1000); // wait for a second + + Serial.println("Low"); + digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW + delay(1000); // wait for a second +} + +ISR(TIMER0_COMPA_vect){ + cnt0++; + if(cnt0 % 1000 == 0) { + cnt0 == 0; + digitalWrite(led0, !digitalRead(led0)); + } +} + +ISR(TIMER1_COMPA_vect){ + cnt1++; + digitalWrite(led1, !digitalRead(led1)); +} + +ISR(TIMER2_COMPA_vect) { + cnt2++; + if(cnt2 % 1000 == 0) { + cnt2 = 0; + digitalWrite(led2, !digitalRead(led2)); + } +} + diff --git a/arduino/ir/irrecv/irrecv.ino b/arduino/ir/irrecv/irrecv.ino new file mode 100644 index 0000000..445838d --- /dev/null +++ b/arduino/ir/irrecv/irrecv.ino @@ -0,0 +1,179 @@ +//------------------------------------------------------------------------------ +// Include the IRremote library header +// +#include + +// HX1838(用金属包住头) 面对HX1838正面从左至右三个脚分别为 OUT、GND、VCC + +//------------------------------------------------------------------------------ +// Tell IRremote which Arduino pin is connected to the IR Receiver (TSOP4838) +// +int recvPin = 11; +IRrecv irrecv(recvPin); + +//+============================================================================= +// Configure the Arduino +// +void setup ( ) +{ + Serial.begin(9600); // Status message will be sent to PC at 9600 baud + irrecv.enableIRIn(); // Start the receiver +} + +//+============================================================================= +// Display IR code +// +void ircode (decode_results *results) +{ + // Panasonic has an Address + if (results->decode_type == PANASONIC) { + Serial.print(results->address, HEX); + Serial.print(":"); + } + + // Print Code + Serial.print(results->value, HEX); +} + +//+============================================================================= +// Display encoding type +// +void encoding (decode_results *results) +{ + switch (results->decode_type) { + default: + case UNKNOWN: Serial.print("UNKNOWN"); break ; + case NEC: Serial.print("NEC"); break ; + case SONY: Serial.print("SONY"); break ; + case RC5: Serial.print("RC5"); break ; + case RC6: Serial.print("RC6"); break ; + case DISH: Serial.print("DISH"); break ; + case SHARP: Serial.print("SHARP"); break ; + case JVC: Serial.print("JVC"); break ; + case SANYO: Serial.print("SANYO"); break ; + case MITSUBISHI: Serial.print("MITSUBISHI"); break ; + case SAMSUNG: Serial.print("SAMSUNG"); break ; + case LG: Serial.print("LG"); break ; + case WHYNTER: Serial.print("WHYNTER"); break ; + case AIWA_RC_T501: Serial.print("AIWA_RC_T501"); break ; + case PANASONIC: Serial.print("PANASONIC"); break ; + case DENON: Serial.print("Denon"); break ; + } +} + +//+============================================================================= +// Dump out the decode_results structure. +// +void dumpInfo (decode_results *results) +{ + // Check if the buffer overflowed + if (results->overflow) { + Serial.println("IR code too long. Edit IRremoteInt.h and increase RAWBUF"); + return; + } + + // Show Encoding standard + Serial.print("Encoding : "); + encoding(results); + Serial.println(""); + + // Show Code & length + Serial.print("Code : "); + ircode(results); + Serial.print(" ("); + Serial.print(results->bits, DEC); + Serial.println(" bits)"); +} + +//+============================================================================= +// Dump out the decode_results structure. +// +void dumpRaw (decode_results *results) +{ + // Print Raw data + Serial.print("Timing["); + Serial.print(results->rawlen-1, DEC); + Serial.println("]: "); + + for (int i = 1; i < results->rawlen; i++) { + unsigned long x = results->rawbuf[i] * USECPERTICK; + if (!(i & 1)) { // even + Serial.print("-"); + if (x < 1000) Serial.print(" ") ; + if (x < 100) Serial.print(" ") ; + Serial.print(x, DEC); + } else { // odd + Serial.print(" "); + Serial.print("+"); + if (x < 1000) Serial.print(" ") ; + if (x < 100) Serial.print(" ") ; + Serial.print(x, DEC); + if (i < results->rawlen-1) Serial.print(", "); //',' not needed for last one + } + if (!(i % 8)) Serial.println(""); + } + Serial.println(""); // Newline +} + +//+============================================================================= +// Dump out the decode_results structure. +// +void dumpCode (decode_results *results) +{ + // Start declaration + Serial.print("unsigned int "); // variable type + Serial.print("rawData["); // array name + Serial.print(results->rawlen - 1, DEC); // array size + Serial.print("] = {"); // Start declaration + + // Dump data + for (int i = 1; i < results->rawlen; i++) { + Serial.print(results->rawbuf[i] * USECPERTICK, DEC); + if ( i < results->rawlen-1 ) Serial.print(","); // ',' not needed on last one + if (!(i & 1)) Serial.print(" "); + } + + // End declaration + Serial.print("};"); // + + // Comment + Serial.print(" // "); + encoding(results); + Serial.print(" "); + ircode(results); + + // Newline + Serial.println(""); + + // Now dump "known" codes + if (results->decode_type != UNKNOWN) { + + // Some protocols have an address + if (results->decode_type == PANASONIC) { + Serial.print("unsigned int addr = 0x"); + Serial.print(results->address, HEX); + Serial.println(";"); + } + + // All protocols have data + Serial.print("unsigned int data = 0x"); + Serial.print(results->value, HEX); + Serial.println(";"); + } +} + +//+============================================================================= +// The repeating section of the code +// +void loop ( ) +{ + decode_results results; // Somewhere to store the results + + if (irrecv.decode(&results)) { // Grab an IR code + dumpInfo(&results); // Output the results + dumpRaw(&results); // Output the results in RAW format + dumpCode(&results); // Output the results as source code + Serial.println(""); // Blank line between entries + irrecv.resume(); // Prepare for the next value + } +} diff --git a/arduino/ir/irsend/irsend.ino b/arduino/ir/irsend/irsend.ino new file mode 100644 index 0000000..c30aac6 --- /dev/null +++ b/arduino/ir/irsend/irsend.ino @@ -0,0 +1,46 @@ +/* + * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend + * An IR LED must be connected to Arduino PWM pin 3. + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * http://arcfn.com + */ + + +// arduino ~3号引脚接940纳米发送头的长引脚 +// 短引脚接100欧电阻,再接GND + +#include + +IRsend irsend; + +void setup() +{ + Serial.begin(9600); +} + +void loop() { + + // 电信机顶盒用NEC发送 + + irsend.sendNEC(0xCD3201FE, 32); // 音量+ + Serial.println("+"); + delay(1000); + irsend.sendNEC(0xCD32817E, 32); // 音量- + Serial.println("-"); + delay(1000); + + + // 小米电视遥控 + int khz = 38; // 38kHz carrier frequency for the NEC protocol + // xiaomi increase volume signal + unsigned int ivs[] = {1000,600, 550,1150, 600,600, 550,900, 550,1150, 600,550, 600,600, 550,1450, 550,1200, 550,600, 550,600, 550}; + // xiaomi decrease volume signal + unsigned int dvs[] = {1050,550, 650,1050, 650,500, 650,800, 650,1100, 650,500, 650,500, 650,1400, 650,1350, 650,500, 650,800, 650}; + irsend.sendRaw(ivs, sizeof(ivs) / sizeof(ivs[0]), khz); + Serial.println("tv+"); + delay(1000); + irsend.sendRaw(dvs, sizeof(dvs) / sizeof(dvs[0]), khz); + Serial.println("tv-"); + delay(1000); +} diff --git a/documents/ArduinoClockInterrupt.md b/documents/ArduinoClockInterrupt.md new file mode 100644 index 0000000..b89fe99 --- /dev/null +++ b/documents/ArduinoClockInterrupt.md @@ -0,0 +1,126 @@ +# arduino clock interrupt + +## Clock Select Bit Description + + +|CS02|CS01|CS00|Description| +|---|---|---|---| +|0|0|0|no clock source (Timer/Counter stopped)| +|0|0|1|clk/1 (no prescaler)| +|0|1|0|clk/8 (from prescaler)| +|0|1|1|clk/64 (from prescaler)| +|1|0|0|clk/256 (from prescaler)| +|1|0|1|clk/1024 (from prescaler)| +|1|1|0|external clock source on T0 pin. clock falling edge| +|1|1|1|external clock source on T0 pin. clock rising edge| + + + +|CS12|CS11|CS10|Description| +|---|---|---|---| +|0|0|0|no clock source (Timer/Counter stopped)| +|0|0|1|clk/1 (no prescaler)| +|0|1|0|clk/8 (from prescaler)| +|0|1|1|clk/64 (from prescaler)| +|1|0|0|clk/256 (from prescaler)| +|1|0|1|clk/1024 (from prescaler)| +|1|1|0|external clock source on T1 pin. clock falling edge| +|1|1|1|external clock source on T1 pin. clock rising edge| + + +|CS22|CS21|CS20|Description| +|---|---|---|---| +|0|0|0|no clock source (Timer/Counter stopped)| +|0|0|1|clkT2S/1 (no prescaler)| +|0|1|0|clkT2S/8 (from prescaler)| +|0|1|1|clkT2S/64 (from prescaler)| + +## Compare Match Register计算方法 + +arduino有三个时钟计数器:Timer0、Timer1、Timer2。 + +arduino的时钟频率是16MHz,所以每个嘀嗒(tick)代表1/16000000秒(约为63ns)。而arduino的Timer0、Timer2的时钟计数器是8位、Timer1是16位。因此这就意味着就算把值设置成最大的,对于8位的将以256/1600000(约16us),对于16位将以65536/16000000(约4ms)的频率触发。因此如果想让它频率变得更低一点,比如一秒触发一次就有点不现实。 + +除非可以利用预分频器(prescaler)来控制时钟计数器的增加方式: + +`(时钟计数频率(Hz)) = 16MHz / prescaler` + +所以当prescaler=1,时钟计数频率=16MHz;当prescaler=64,时钟计数频率=250KHz。 + +如上表所述,prescaler只能在1, 8, 64, 256, 1024中取值。 + +所以: + +`(计数器触发频率(Hz)) = 16MHz / ( prescaler*(CompareMatchRegister+1) )` + +变换一下上式: + +`CompareMatchRegister = 16MHz / ( prescaler*(计数器触发频率(Hz)) ) - 1` + +**注意:Timer0、Timer1的CompareMatchRegister必需小于256;Timer1的CompareMatchRegister必需小于65536** + +所以如果想要1Hz的触发频率,则`CompareMatchRegister = 16MHz / ( 1024*1) - 1 = 15624`,这里的prescaler=1024,因为prescaler取到最大值了CompareMatchRegister还等于15624,256<15624<65536,所以必需要用到Timer1。 + + +## 示例代码 + +``` +void setup(){ + + cli();//stop interrupts + + //设置timer0会影响到loop函数里调用的delay,会使其失效 + //set timer0 interrupt at 2kHz + TCCR0A = 0;// set entire TCCR0A register to 0 + TCCR0B = 0;// same for TCCR0B + TCNT0 = 0;//initialize counter value to 0 + // set compare match register for 2khz increments + OCR0A = 124;// = (16*10^6) / (2000*64) - 1 (must be <256) + // turn on CTC mode + TCCR0A |= (1 << WGM01); + // Set CS01 and CS00 bits for 64 prescaler (参考上表) + TCCR0B |= (1 << CS01) | (1 << CS00); + // enable timer compare interrupt + TIMSK0 |= (1 << OCIE0A); + + //set timer1 interrupt at 1Hz + TCCR1A = 0;// set entire TCCR1A register to 0 + TCCR1B = 0;// same for TCCR1B + TCNT1 = 0;//initialize counter value to 0 + // set compare match register for 1hz increments + OCR1A = 15624;// = (16*10^6) / (1*1024) - 1 (must be <65536) + // turn on CTC mode + TCCR1B |= (1 << WGM12); + // Set CS10 and CS12 bits for 1024 prescaler (参考上表) + TCCR1B |= (1 << CS12) | (1 << CS10); + // enable timer compare interrupt + TIMSK1 |= (1 << OCIE1A); + + //set timer2 interrupt at 8kHz + TCCR2A = 0;// set entire TCCR2A register to 0 + TCCR2B = 0;// same for TCCR2B + TCNT2 = 0;//initialize counter value to 0 + // set compare match register for 8khz increments + OCR2A = 249;// = (16*10^6) / (8000*8) - 1 (must be <256) + // turn on CTC mode + TCCR2A |= (1 << WGM21); + // Set CS21 bit for 8 prescaler (参考上表) + TCCR2B |= (1 << CS21); + // enable timer compare interrupt + TIMSK2 |= (1 << OCIE2A); + + sei();//allow interrupts + +}//end setup + +void loop() { } + +ISR(TIMER0_COMPA_vect){ /* TODO */ } +ISR(TIMER1_COMPA_vect){ /* TODO */ } +ISR(TIMER2_COMPA_vect){ /* TODO */ } +``` + + + +## 注 +1. 1MHz = 1 * 1000KHz = 1 * 1000 * 1000Hz,这里是1000不是1024 \ No newline at end of file diff --git "a/documents/\351\201\245\346\216\247\347\272\242\345\244\226\347\272\277\347\274\226\347\240\201.md" "b/documents/\351\201\245\346\216\247\347\272\242\345\244\226\347\272\277\347\274\226\347\240\201.md" new file mode 100644 index 0000000..54d8db4 --- /dev/null +++ "b/documents/\351\201\245\346\216\247\347\272\242\345\244\226\347\272\277\347\274\226\347\240\201.md" @@ -0,0 +1,45 @@ + +## 1. 电信机顶盒遥控编码 +||格式|编码| +|---|---|---| +|电源|NEC|`CD328F70`| +|待机|NEC|`CD323BC4`| +|频道+|NEC|`CD32A15E`| +|频道-|NEC|`CD32619E`| +|音量+|NEC|`CD3201FE`| +|音量-|NEC|`CD32817E`| +|返回|NEC|`CD32A35C`| +|确定|NEC|`CD32738C`| +|上|NEC|`CD3253AC`| +|下|NEC|`CD324BB4`| +|左|NEC|`CD329966`| +|右|NEC|`CD32837C`| +|上页|NEC|`CD32BB44`| +|下页|NEC|`CD3231CE`| +|0|NEC|`CD32E11E`| +|1|NEC|`CD3249B6`| +|2|NEC|`CD32C936`| +|3|NEC|`CD3233CC`| +|4|NEC|`CD32718E`| +|5|NEC|`CD32F10E`| +|6|NEC|`CD3213EC`| +|7|NEC|`CD3251AE`| +|8|NEC|`CD32D12E`| +|9|NEC|`CD3223DC`| + + +## 2. 小米电视遥控编码 + +||格式|编码|RawData| +|---|---|---|---| +|电源|UNKNOWN|`5E7DB3DC`|`{1100,500, 650,500, 650,1400, 650,1350, 650,500, 650,1400, 650,500, 650,1350, 650,550, 650,1350, 650,1350, 650}`| +|上|UNKNOWN|`3F9089B2`|`{1100,500, 600,1150, 650,500, 600,850, 650,1050, 650,550, 650,500, 650,800, 650,800, 650,1050, 650,1400, 650}`| +|下|UNKNOWN|`B23FB1E9`|`{1050,550, 600,1150, 600,550, 600,850, 650,1050, 650,550, 600,550, 600,850, 650,1050, 650,1100, 650,500, 650}`| +|左|UNKNOWN|`8753BA5C`|`{1000,600, 600,1150, 550,600, 550,900, 550,1200, 550,600, 550,600, 550,1200, 550,1450, 550,900, 550,900, 550}`| +|右|UNKNOWN|`69893291`|`{1000,600, 550,1200, 550,600, 550,900, 550,1150, 600,600, 550,600, 550,1450, 550,600, 600,600, 550,1150, 550}`| +|确定|UNKNOWN|`76A77416`|`{1000,600, 550,1200, 550,600, 550,900, 550,1150, 600,600, 550,600, 550,1450, 550,900, 550,600, 550,1500, 550}`| +|HOME|UNKNOWN|`F874E0F8`|`{1000,600, 550,1200, 550,600, 550,900, 550,1150, 600,600, 550,600, 550,1150, 600,600, 550,900, 550,1150, 550}`| +|返回|UNKNOWN|`DE3AA631`|`{950,650, 500,1200, 550,650, 550,850, 550,1250, 500,650, 450,650, 550,900, 550,1500, 500,1250, 500,900, 550}`| +|MENU|UNKNOWN|`F574DC41`|`{1000,600, 550,1200, 550,600, 550,900, 550,1200, 550,600, 550,600, 550,900, 550,600, 550,1200, 550,1150, 600}`| +|音量+|UNKNOWN|`8753BA5C`|`{1000,600, 550,1150, 600,600, 550,900, 550,1150, 600,550, 600,600, 550,1450, 550,1200, 550,600, 550,600, 550}`| +|音量-|UNKNOWN|`8453B5A5`|`{1050,550, 650,1050, 650,500, 650,800, 650,1100, 650,500, 650,500, 650,1400, 650,1350, 650,500, 650,800, 650}`| diff --git a/tools/AceBox/AceBox.xcodeproj/project.pbxproj b/tools/AceBox/AceBox.xcodeproj/project.pbxproj index 617ae79..c4d9a97 100644 --- a/tools/AceBox/AceBox.xcodeproj/project.pbxproj +++ b/tools/AceBox/AceBox.xcodeproj/project.pbxproj @@ -128,6 +128,12 @@ 50A4F2741AF2154100DB7E36 = { CreatedOnToolsVersion = 6.3.1; DevelopmentTeam = VR7L9Q5L2E; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.BackgroundModes = { + enabled = 1; + }; + }; }; }; }; @@ -285,12 +291,15 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = VR7L9Q5L2E; INFOPLIST_FILE = AceBox/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tencent.voip.ace; PRODUCT_NAME = Ace; + PROVISIONING_PROFILE_SPECIFIER = ""; }; name = Debug; }; @@ -298,12 +307,15 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = VR7L9Q5L2E; INFOPLIST_FILE = AceBox/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tencent.voip.ace; PRODUCT_NAME = Ace; + PROVISIONING_PROFILE_SPECIFIER = ""; }; name = Release; }; 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 edc0110c060f8efbf370b3abd9159bf40d9d7d34..b20ba3ce735579d526b617186c3cd8eef8ea94ee 100644 GIT binary patch literal 114416 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 bsmqJJ$^!o__{n$r?{`=K)BNuz?DFQn*v&2` diff --git a/tools/AceBox/AceBox/AppDelegate.swift b/tools/AceBox/AceBox/AppDelegate.swift index 5cf83f7..469c173 100644 --- a/tools/AceBox/AceBox/AppDelegate.swift +++ b/tools/AceBox/AceBox/AppDelegate.swift @@ -14,30 +14,30 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + private func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. return true } - func applicationWillResignActive(application: UIApplication) { + func applicationWillResignActive(_ application: UIApplication) { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - func applicationDidEnterBackground(application: UIApplication) { + func applicationDidEnterBackground(_ application: UIApplication) { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - func applicationWillEnterForeground(application: UIApplication) { + func applicationWillEnterForeground(_ application: UIApplication) { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } - func applicationDidBecomeActive(application: UIApplication) { + func applicationDidBecomeActive(_ application: UIApplication) { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - func applicationWillTerminate(application: UIApplication) { + func applicationWillTerminate(_ application: UIApplication) { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } diff --git a/tools/AceBox/AceBox/Base.lproj/LaunchScreen.xib b/tools/AceBox/AceBox/Base.lproj/LaunchScreen.xib index 816612e..6e80504 100644 --- a/tools/AceBox/AceBox/Base.lproj/LaunchScreen.xib +++ b/tools/AceBox/AceBox/Base.lproj/LaunchScreen.xib @@ -1,10 +1,19 @@ - - + + + + + - + + + + + HelveticaNeue + + @@ -15,24 +24,24 @@ - - + + - + diff --git a/tools/AceBox/AceBox/Base.lproj/Main.storyboard b/tools/AceBox/AceBox/Base.lproj/Main.storyboard index cc32045..d68453c 100644 --- a/tools/AceBox/AceBox/Base.lproj/Main.storyboard +++ b/tools/AceBox/AceBox/Base.lproj/Main.storyboard @@ -5,7 +5,7 @@ - + diff --git a/tools/AceBox/AceBox/Info.plist b/tools/AceBox/AceBox/Info.plist index 222ac74..6a070d0 100644 --- a/tools/AceBox/AceBox/Info.plist +++ b/tools/AceBox/AceBox/Info.plist @@ -20,8 +20,20 @@ ???? CFBundleVersion 1 + LSApplicationCategoryType + + en + LSRequiresIPhoneOS + NSLocationAlwaysAndWhenInUseUsageDescription + 需要始终访问你的地理位置 + NSLocationWhenInUseUsageDescription + 需要在使用应用时访问你的地理位置 + UIBackgroundModes + + location + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/tools/AceBox/AceBox/SecondViewController.swift b/tools/AceBox/AceBox/SecondViewController.swift index b403572..3e2c11b 100644 --- a/tools/AceBox/AceBox/SecondViewController.swift +++ b/tools/AceBox/AceBox/SecondViewController.swift @@ -7,20 +7,94 @@ // import UIKit +import CoreLocation -class SecondViewController: UIViewController { +class SecondViewController: UIViewController, CLLocationManagerDelegate { + + var locationMgr:CLLocationManager! + var cnt:Int = 0 + var labelGPS:UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //view.backgroundColor = UIColor.blueColor() view.backgroundColor = UIColor(red: 0, green: 0.47843137250000001, blue: 1, alpha: 1) + + locationMgr = CLLocationManager() + locationMgr.desiredAccuracy = kCLLocationAccuracyBestForNavigation + if #available(iOS 9.0, *) { + locationMgr.allowsBackgroundLocationUpdates = true + } + locationMgr.pausesLocationUpdatesAutomatically = false + + //locationMgr.distanceFilter = 50 + + locationMgr.requestAlwaysAuthorization() + + locationMgr.delegate = self + + if CLLocationManager.locationServicesEnabled() { + locationMgr.startUpdatingLocation() + } else { + print("no location service") + } + + labelGPS = UILabel(frame: CGRect(x: 10, y: 20, width: 300, height: 100)) + labelGPS.text = "searching" + labelGPS.textColor = UIColor.white + labelGPS.numberOfLines = 3 + self.view.addSubview(labelGPS) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } + + + func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { + print(error) + } + + func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + if locations.count > 0 { + let locationInfo = locations.last! + + let msg = "次数:\(cnt)\n经度:\(locationInfo.coordinate.longitude)\n纬度:\(locationInfo.coordinate.latitude)" + + cnt += 1 + + //let alert:UIAlertView = UIAlertView(title:"Get Location", message:msg, delegate:nil, cancelButtonTitle:"Yes") + //alert.show() + + print(msg) + + labelGPS.text = msg + /* + let fileManager = FileManager.default + let filePath:String = NSHomeDirectory() + "/Documents/gps.data" + let exist = fileManager.fileExists(atPath: filePath) + if exist { + print("exist \(filePath)") + let data = "\(cnt) \(locationInfo.coordinate.longitude) \(locationInfo.coordinate.latitude)\n" + //try! data.write(toFile: filePath, atomically: true, encoding: String.Encoding.utf8) + + let writeHandler = try? FileHandle(forWritingAtPath: filePath) + writeHandler!?.seekToEndOfFile() + writeHandler!?.write(data.data(using: String.Encoding.utf8, allowLossyConversion: true)!) + + let rd = fileManager.contents(atPath: filePath) + print("content: \(String(data:rd!, encoding: String.Encoding.utf8))") + } else { + print(NSHomeDirectory()) + try! fileManager.createDirectory(atPath: NSHomeDirectory()+"/Documents/", + withIntermediateDirectories: true, attributes: nil) + let createSuccess = fileManager.createFile(atPath: filePath, contents: nil, attributes: nil) + print("create file \(filePath) return \(createSuccess)") + }*/ + } + } } -- 2.44.0