`
wenxin2009
  • 浏览: 324608 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ios学习流水账2

    博客分类:
  • ios
阅读更多

1、UISearchBar自定义背景、取消按钮中文设置

UISearchBar *seachBar=[[UISearchBar alloc] init];

//修改搜索框背景
seachBar.backgroundColor=[UIColor clearColor];

//去掉搜索框背景
[[searchbar.subviews objectAtIndex:0]removeFromSuperview];

for (UIView *subview in seachBar.subviews) 
{  
if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
{  
[subview removeFromSuperview];  
break;  
}  
} 

//自定义背景
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"40-di.png"]];
[searchBar insertSubview:imageView atIndex:1];

//输入搜索文字时隐藏搜索按钮,清空时显示
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {  
searchBar.showsScopeBar = YES;  
[searchBar sizeToFit];  
[searchBar setShowsCancelButton:YES animated:YES];  
return YES;  
}  

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {  
searchBar.showsScopeBar = NO;  
[searchBar sizeToFit];  
[searchBar setShowsCancelButton:NO animated:YES];  
return YES;  
}  

//修改UISearchBar取消按钮中文字体
    for (id aa in [searchBar subviews]) {
        if ([aa isKindOfClass:[UIButton class]]) {
            UIButton *btn = (UIButton *)aa;
            [btn setTitle:@"取消" forState:UIControlStateNormal];
        }
    }

 

2、UISearchBar

#pragma mark 搜索控件
//搜索
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
    UIStoryboard *mainStory = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    FirstViewController *fVC = [mainStory instantiateViewControllerWithIdentifier:@"goFirstView"];
    fVC.showStr = self.searchBar.text;
    [self presentModalViewController:fVC animated:YES];
}

//搜索输入内容时触发
- (void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
    
}

//焦点进入搜索
- (void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
    self.soundBtn.hidden = YES;
    [self searchBar:searchBar activate:YES];
    
}

//取消搜索按钮
- (void) searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    self.searchBar.text = @"";
    self.soundBtn.hidden = NO;
    [self searchBar:searchBar activate:NO];
}

- (void)searchBar:(UISearchBar *)searchBar activate:(BOOL) active{
    if (!active) {  
        [self.searchBar resignFirstResponder];  
    } 
    
    [self.searchBar setShowsCancelButton:active animated:YES];
    //修改UISearchBar取消按钮字体
    for (id aa in [searchBar subviews]) {
        if ([aa isKindOfClass:[UIButton class]]) {
            UIButton *btn = (UIButton *)aa;
            [btn setTitle:@"取消" forState:UIControlStateNormal];
        }
    }
}

 

3、NSNotificationCenter通告中心

   NSNotificationCenter通告与一个按钮中用addTarget绑定方法有些相似,按钮中的绑定触发事件时才调用关联消息。而NSNotificationCenter的范围则大得多,比如说摇动中,当触发摇动事件时,就提交并触发消息。

示例如下:

//1、需触发的消息方法
- (void) testNotification{
    NSLog(@"测试通告中心。。。。。。。");
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    //2、对象注册,关联消息
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(testNotification) name:@"Dwen_Notification" object:nil];
    
}

#pragma 通告中心
- (IBAction)notificationTest:(id)sender {
    //3、提交消息
    [[NSNotificationCenter defaultCenter] postNotificationName:@"Dwen_Notification" object:@"Request Object"];
}

 

4、视图显示和消失将会调用的方法,可处理一些前一界面的还原初始状态。

- (void) viewWillDisappear:  视图消失时调用

- (void) viewWillAppear:      进入视图时调用

例如:点击搜索后,会的取消按钮,跳到下一界面再返回时,需把取消按钮隐藏掉可通过它们处理。

 

5、获取程序的AppDelegate

AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];

 

6、ios4跳转界面

 QuotaManageViewController *qmvc = [[QuotaManageViewController alloc] init];
    [self.navigationController pushViewController:qmvc animated:YES];
    [qmvc release];

 

7、UILable换行

lab_1.lineBreakMode = UILineBreakModeWordWrap;
lab_1.numberOfLines = 0;

 

8、ipad中设置tableview背景无效,有两种解决方法:

方法一:

UIView *view = [[UIView alloc] init];
    view.backgroundColor = [UIColor clearColor];
    tableView2.backgroundView = view;

 方法二:

if ([self.tableView2 respondsToSelector:@selector(backgroundView)]) {
        self.tableView2.backgroundView = nil;
    }

 

9、自定义UIView时,会继承它,下面是如何加载UIView对应xib。

UIView *head_View = [[[NSBundle mainBundle] loadNibNamed:@"HeadView" owner:self options:nil] lastObject];
    head_View.frame = CGRectMake(0, -120, self.view.frame.size.width, 150);
    head_View.backgroundColor = [UIColor brownColor];
    [self.view addSubview:head_View];

 

10、对UIView进行旋转。2012-11-07

今天在做ipad时,弹出的pop视图,总是横屏放着,不能竖屏。纠结了些时间,后来通过修改视图的坐标解决了该问题。

CGAffineTransform at = CGAffineTransformMakeRotation(M_PI/2);//顺时钟旋转90
        at = CGAffineTransformTranslate(at, 200, 0);
        [popVC.view setTransform:at];

 

11、关于在UIView上进行滑动手势和点击事件手势。

 

///////////注flowView为UIView//////////
 //添加滑动手势事件
    UIPanGestureRecognizer *gestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:flowView action:@selector(handleGesture:)];
    [flowView addGestureRecognizer:gestureRecognizer];
    
    //添加点击手势事件
    flowView.userInteractionEnabled = YES;
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:flowView action:@selector(goBigImageView)];
    [flowView addGestureRecognizer:tap];

 

//滑动手势(里面有手势的不同状态,根据需要进行灵活运用)
- (void)handleGesture:(UIPanGestureRecognizer *)recognizer {
    //UITapGestureRecognizer
   if (recognizer.state == UIGestureRecognizerStateChanged){
       NSLog(@"UIGestureRecognizerStateChanged");
   }else if(recognizer.state == UIGestureRecognizerStateEnded){
       NSLog(@"UIGestureRecognizerStateEnded");
   }else if(recognizer.state == UIGestureRecognizerStateBegan){
       NSLog(@"UIGestureRecognizerStateBegan");
   }else if(recognizer.state == UIGestureRecognizerStateCancelled){
       NSLog(@"UIGestureRecognizerStateCancelled");
   }else if(recognizer.state == UIGestureRecognizerStateFailed){
       NSLog(@"UIGestureRecognizerStateFailed");
   }else if(recognizer.state == UIGestureRecognizerStatePossible){
       NSLog(@"UIGestureRecognizerStatePossible");
   }else if(recognizer.state == UIGestureRecognizerStateRecognized){
       NSLog(@"UIGestureRecognizerStateRecognized");
   }

}

 

12、启动时异常

Couldn't register com.yourcompany.ReciteWords with the bootstrap server. Error: unknown error code.
This generally means that another instance of this process was already running or is hung in the debugger

解决方法,重启设备或模拟器

 

13、读写plist文件

- (void)readWritePlist{
         //获取路径
         NSString *homePath = [[NSBundle mainBundle] executablePath];
	NSArray *strings = [homePath componentsSeparatedByString: @"/"];
	NSString *executableName  = [strings objectAtIndex:[strings count]-1];	
	NSString *baseDirectory = [homePath substringToIndex:
							   [homePath length]-[executableName length]-1];	
	//data.plist文件
	NSString *filePath = [NSString stringWithFormat:@"%@/data.plist",baseDirectory];
    NSLog(@"filePath: %@",filePath);
	NSMutableDictionary *dataDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
	NSLog(@"dataDict: %@",dataDict);
	//change the value or add the value
	[dataDict setObject:@"YES" forKey:@"Trial"];
        [dataDict setValue:@"dwen" forKey:@"nickName"];
        //write back to data.plist file
	[dataDict writeToFile:filePath atomically:NO];

}

 

14、ios生成随机数(三种方式):

 int i = rand() % 5;

int i = random() % 5;

int  x = arc4random() % 100;//[0,100] 包括0 ,不包括100

int  y = (arc4random() % 501) + 500;//[500,1000 ],包括500 ,不包括1000

 

15、UIImage图片处理:缩放、设定大小、存储 (转载)

//1.等比率缩放
- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize{
UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, image.size.height * scaleSize);
[image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height * scaleSize)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}

//2.自定长宽
- (UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize{
UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height));
[image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return reSizeImage;
}

//3.处理某个特定View
只要是继承UIView的object 都可以处理
必须先import QuzrtzCore.framework
-(UIImage*)captureView:(UIView *)theView{
CGRect rect = theView.frame;
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[theView.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}

//4.储存图片
储存图片这里分成储存到app的文件里, 储存到手机的图片库里
// 储存到app的文件里
NSString *path = [[NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"image.png"];
[UIImagePNGRepresentation(image) writeToFile:pathatomically:YES];

 

16、object-c正则验证,方式之一,如下:

    NSPredicate用于指定过滤器的条件。通过该对象准确地描述所需条件,对每个对象通过谓词进行筛选,判断它们是否与条件相匹配。

NSString *numberRegex = @"[1-4]";
NSPredicate *number = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",numberRegex];     
bool result = [number evaluateWithObject:@"1"];

 

 

17、定义程序块

//定义程序块
    void(^loggerBlock)(void);
    //实现程序块
    loggerBlock = ^{NSLog(@"i am test block.");};
    //执行程序块
    loggerBlock();

 

18、反射

//反射(对CodingVo类进行反射)
    Class cls = NSClassFromString(@"CodingVo");
    id obj = [[cls alloc] init];
    SEL selector = NSSelectorFromString(@"test1");
   //调用CodingVo类中test1方法
    [obj performSelector:selector withObject:nil];

 

19、调用短信、电话、邮件、Safari浏览器API

//调用短信
- (IBAction)callMsg:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://135587"]];
}

//调用电话
- (IBAction)callTel:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://135587"]];
}

//调用Safari浏览器
- (IBAction)callSafari:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com/"]];
}

// 调用email
- (IBAction)callEmail:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://test@126.com"]];
}

 

20、操作声音文件,添加AudioToolbox.framework库。

#import <AudioToolbox/AudioToolbox.h>

@property (assign,nonatomic) SystemSoundID soundID;

//测试播放声音
- (void) testSound{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"2" ofType:@"caf"];
    NSURL *url = [NSURL fileURLWithPath:path];
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);
    AudioServicesPlaySystemSound(soundID);
    NSLog(@"testSound...mp3音频文件格式不支持");
}

 

21、ios触摸事件监听和操作(UITouch)

//手指触摸屏幕时报告
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    NSLog(@"touchesBegan");
}
//手指在屏幕上移动时报告
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
     NSLog(@"touchesMoved");
}
//手指离开屏幕时报告
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
     NSLog(@"touchesEnded");
}
//因接听电话或其他因素导致取消触摸时报告
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{
     NSLog(@"touchesCancelled");
}

 

22、\u00B0表示角度符号

NSString *latitudeStr = [NSString stringWithFormat:@"%g\u00B0",newLocation.coordinate.latitude];

 

 23、实现ios动画效果有两种方式,一种是UIView层面上的,另一种是CATransation更底层次控制

 

24、设备信息

NSLog(@"系统名称:%@ ,系统版本: %@",[[UIDevice currentDevice] systemName],[[UIDevice currentDevice] systemVersion]);

 

 25、MPMoviePlayerViewController控件中,需把Done改为中文,对工程中plist文件进行设置。对其他英文控件中的英文文本也有同样有效。设置见下图:



 

 26、文本层CATextLayer

 

CATextLayer *txtLayer = [CATextLayer layer];
        txtLayer.string = @"地球";
        txtLayer.foregroundColor = [[UIColor redColor] CGColor];
        txtLayer.bounds = CGRectMake(0, 0, 200, 50);
        txtLayer.position = CGPointMake(0, 0);
        [imageLayer addSublayer:txtLayer];
 

 27、assign、retain、copy、readonly区别

assign:指定setter方法用简单的赋值,这是默认操作。你可以对标量类型(如int)使用这个属性。你可以想象一个float,它不是一个对象,所以它不能retain、copy。

retain:指定retain应该在后面的对象上调用,前一个值发送一条release消息。你可以想象一个NSString实例,它是一个对象,而且你可能想要retain它。

copy:指定应该使用对象的副本(深度复制),前一个值发送一条release消息。基本上像retain,但是没有增加引用计数,是分配一块新的内存来放置它。

readonly:将只生成getter方法而不生成setter方法(getter方法没有get前缀)。

readwrite:默认属性,将生成不带额外参数的getter和setter方法(setter方法只有一个参数)。

atomic:对于对象的默认属性,就是setter/getter生成的方法是一个原子操作。如果有多个线程同时调用setter的话,不会出现某一个线程执行setter全部语句之前,另一个线程开始执行setter的情况,相关于方法头尾加了锁一样。

nonatomic:不保证setter/getter的原子性,多线程情况下数据可能会有问题
28、声明关键字前加extern,为外部变量。外部变量可被其他任何方法或函数访问和更改其值的变量。

 29、音频AVAudioPlayer播放mp3文件:

 

NSURL *url = [NSURL URLWithString:@"http://7xavon.com1.z0.glb.clouddn.com/tmp.mp3"];
NSData * audioData = [NSData dataWithContentsOfURL:url];
        //将数据保存到本地指定位置
        NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSString *filePath = [NSString stringWithFormat:@"%@/%@.mp3", docDirPath , @"temp"];
        [audioData writeToFile:filePath atomically:YES];
        
        //播放本地音乐
        NSURL *fileURL = [NSURL fileURLWithPath:filePath];
        avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
        [avAudioPlayer play];

播放mp3异步线程:

dispatch_queue_t queue =  dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    //2.添加任务到队列中,就可以执行任务
    //异步函数:具备开启新线程的能力
    dispatch_async(queue, ^{
        NSString *urlStr = _mdExhibitWorkVo.workAudio;
        NSURL *url = [[NSURL alloc]initWithString:urlStr];
        NSData * audioData = [NSData dataWithContentsOfURL:url];
        //将数据保存到本地指定位置
        NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSString *filePath = [NSString stringWithFormat:@"%@/%@.mp3", docDirPath , @"workVideo"];
        NSLog(@"mp3保存本地目录======%@",filePath);
        [audioData writeToFile:filePath atomically:YES];
        //播放本地音乐
        NSURL *fileURL = [NSURL fileURLWithPath:filePath];
        [AudioPlayerUtils getInstance:fileURL].delegate = self;
        [AudioPlayerUtils play:nil];
    });

  

 

在线播放mp3:

 

NSString *urlStr = @"http://ssss/1.mp3";
NSURL *url = [[NSURL alloc]initWithString:urlStr];
NSData *data = [NSData dataWithContentsOfURL:fileURL];
AVAudioPlayer  *avAudioPlayer = [[AVAudioPlayer alloc] initWithData:data error:nil];
[avAudioPlayer prepareToPlay];
[avAudioPlayer play];

 

 

00

  • 大小: 7.6 KB
  • 大小: 19.1 KB
分享到:
评论

相关推荐

    大学生 毕业设计 项目实训 基于ionic开发的一款手机应用APP-流水账app(前后端全套源代码).zip

    6. **教程资源**:文件列表中包含了两个简书的文章链接,一篇是“一周搞定TypeScript+Angular2+Ionic2”,另一篇是“记一笔:最简约的流水账app”。这些资源可能是为了辅助学习者理解和实现该项目而提供的,涵盖了从...

    基于TypeScript(ES)+Angular+Ionic开发的一款APP前后台全套源代码.zip_ES240

    "记一笔:最简约的流水账app - 简书.url"和"一周搞定TypeScript+Angular2+Ionic2 - 简书.url"是两个链接,分别指向关于如何构建一个简单的记账应用的教程和快速掌握TypeScript、Angular2和Ionic2的指南。这些资源...

    基于MATLAB GUI与CNN的模糊车牌识别系统:从图像预处理到字符识别全流程解析

    内容概要:本文详细介绍了基于MATLAB GUI界面和卷积神经网络(CNN)的模糊车牌识别系统。该系统旨在解决现实中车牌因模糊不清导致识别困难的问题。文中阐述了整个流程的关键步骤,包括图像的模糊还原、灰度化、阈值化、边缘检测、孔洞填充、形态学操作、滤波操作、车牌定位、字符分割以及最终的字符识别。通过使用维纳滤波或最小二乘法约束滤波进行模糊还原,再利用CNN的强大特征提取能力完成字符分类。此外,还特别强调了MATLAB GUI界面的设计,使得用户能直观便捷地操作整个系统。 适合人群:对图像处理和深度学习感兴趣的科研人员、高校学生及从事相关领域的工程师。 使用场景及目标:适用于交通管理、智能停车场等领域,用于提升车牌识别的准确性和效率,特别是在面对模糊车牌时的表现。 其他说明:文中提供了部分关键代码片段作为参考,并对实验结果进行了详细的分析,展示了系统在不同环境下的表现情况及其潜在的应用前景。

    嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip

    嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip

    开关磁阻电机技术参数与建模技术深度解析:4kW电机性能详述

    内容概要:本文深入探讨了一款额定功率为4kW的开关磁阻电机,详细介绍了其性能参数如额定功率、转速、效率、输出转矩和脉动率等。同时,文章还展示了利用RMxprt、Maxwell 2D和3D模型对该电机进行仿真的方法和技术,通过外电路分析进一步研究其电气性能和动态响应特性。最后,文章提供了基于RMxprt模型的MATLAB仿真代码示例,帮助读者理解电机的工作原理及其性能特点。 适合人群:从事电机设计、工业自动化领域的工程师和技术人员,尤其是对开关磁阻电机感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解开关磁阻电机特性和建模技术的研究人员,在新产品开发或现有产品改进时作为参考资料。 其他说明:文中提供的代码示例仅用于演示目的,实际操作时需根据所用软件的具体情况进行适当修改。

    少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip

    少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip

    少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip

    少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip

    四象限直流电机速度驱动控制系统PID控制仿真模型设计与实现

    内容概要:本文详细介绍了基于PID控制器的四象限直流电机速度驱动控制系统仿真模型及其永磁直流电机(PMDC)转速控制模型。首先阐述了PID控制器的工作原理,即通过对系统误差的比例、积分和微分运算来调整电机的驱动信号,从而实现转速的精确控制。接着讨论了如何利用PID控制器使有刷PMDC电机在四个象限中精确跟踪参考速度,并展示了仿真模型在应对快速负载扰动时的有效性和稳定性。最后,提供了Simulink仿真模型和详细的Word模型说明文档,帮助读者理解和调整PID控制器参数,以达到最佳控制效果。 适合人群:从事电力电子与电机控制领域的研究人员和技术人员,尤其是对四象限直流电机速度驱动控制系统感兴趣的读者。 使用场景及目标:适用于需要深入了解和掌握四象限直流电机速度驱动控制系统设计与实现的研究人员和技术人员。目标是在实际项目中能够运用PID控制器实现电机转速的精确控制,并提高系统的稳定性和抗干扰能力。 其他说明:文中引用了多篇相关领域的权威文献,确保了理论依据的可靠性和实用性。此外,提供的Simulink模型和Word文档有助于读者更好地理解和实践所介绍的内容。

    嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip

    嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip

    少儿编程scratch项目源代码文件案例素材-驾驶通关.zip

    少儿编程scratch项目源代码文件案例素材-驾驶通关.zip

    小区开放对周边道路通行能力影响的研究.pdf

    小区开放对周边道路通行能力影响的研究.pdf

    冷链物流路径优化:基于NSGA-2遗传算法与软硬时间窗策略的研究

    内容概要:本文探讨了冷链物流车辆路径优化问题,特别是如何通过NSGA-2遗传算法和软硬时间窗策略来实现高效、环保和高客户满意度的路径规划。文中介绍了冷链物流的特点及其重要性,提出了软时间窗概念,允许一定的配送时间弹性,同时考虑碳排放成本,以达到绿色物流的目的。此外,还讨论了如何将客户满意度作为路径优化的重要评价标准之一。最后,通过一段简化的Python代码展示了遗传算法的应用。 适合人群:从事物流管理、冷链物流运营的专业人士,以及对遗传算法和路径优化感兴趣的科研人员和技术开发者。 使用场景及目标:适用于冷链物流企业,旨在优化配送路线,降低运营成本,减少碳排放,提升客户满意度。目标是帮助企业实现绿色、高效的物流配送系统。 其他说明:文中提供的代码仅为示意,实际应用需根据具体情况调整参数设置和模型构建。

    少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip

    少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip

    基于STM32F030的无刷电机高压FOC控制方案:滑膜无感FOC技术及保护机制

    内容概要:本文详细介绍了基于STM32F030的无刷电机控制方案,重点在于高压FOC(磁场定向控制)技术和滑膜无感FOC的应用。该方案实现了过载、过欠压、堵转等多种保护机制,并提供了完整的源码、原理图和PCB设计。文中展示了关键代码片段,如滑膜观测器和电流环处理,以及保护机制的具体实现方法。此外,还提到了方案的移植要点和实际测试效果,确保系统的稳定性和高效性。 适合人群:嵌入式系统开发者、电机控制系统工程师、硬件工程师。 使用场景及目标:适用于需要高性能无刷电机控制的应用场景,如工业自动化设备、无人机、电动工具等。目标是提供一种成熟的、经过验证的无刷电机控制方案,帮助开发者快速实现并优化电机控制性能。 其他说明:提供的资料包括详细的原理图、PCB设计文件、源码及测试视频,方便开发者进行学习和应用。

    基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf

    基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf

    嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip

    嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip

    少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip

    少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip

    Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统.zip

    Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统

    C# WPF - LiveCharts Project

    C# WPF - LiveCharts Project

Global site tag (gtag.js) - Google Analytics