职场写作网

导航栏 ×
职场写作网 >地图 >工作总结 >

自定义造价工作总结

自定义造价工作总结

时间:2025-08-01

自定义造价工作总结(精选十七篇)。

❈ 自定义造价工作总结

通常情况下,咱们在Word中运用比较广的指令都涣散在不一样的菜单中,关于新手来说则需求记清这些指令所散布的方位,若是弄混杂了则可能会翻开多个菜单进行寻觅。其实从操作的快捷、疾速的视点来看,咱们完全能够个人新建一个Word专用菜单,然后把那些常用的指令都放在里边。

发动Word后,翻开“东西”菜单下的“自定义”指令,将翻开的“自定义”窗口切换到“指令”标签,在左侧的“种类”中挑选“新菜单”,然后把右侧显现的“新菜单”拖放到Word的菜单栏中。

这样Word的菜单栏就会多出一个“新菜单”的菜单,不要将“自定义”窗口封闭,

为了让菜单名更契合特性,此刻需求在“新菜单”称号上右击,在弹出的菜单挑选“命名”,并在输入框中输入该菜单的称号,例如“专速通道”。

如今咱们就能够在翻开的“自定义”窗口的“指令”标签左侧挑选指令的种类,在右侧挑选详细的指令,并将该指令拖放到新建成的“疾速通道”菜单上。例如咱们在左侧“种类”挑选“文件”,在右侧的“指令”中挑选“打印”,然后将“打印”指令拖放到“疾速通道”按钮上,再单击“疾速通道”按钮就会发现“打印”指令现已包含在里边了。用相同的办法能够把其它常用的指令都增加进来。

❈ 自定义造价工作总结

“Klein”投稿了5篇iOS开发系列之常用自定义控件开发集―自定义单选按钮或者多选按钮控件开发,下面小编给大家整理后的iOS开发系列之常用自定义控件开发集―自定义单选按钮或者多选按钮控件开发,欢迎阅读与借鉴!

篇1:iOS开发系列之常用自定义控件开发集―自定义单选按钮或者多选按钮控件开发<\/h2>

在我们实际开发中我们做登陆或者注册功能时往往需要勾选某个协议这个时候就需要用到CheckBox按钮,CheckBox是pc或者android上得控件ios没有,所以需要我们自定义,

WHC_RadioButton.h头文件如下:

//// WHC_RadioButton.h// CTBMobileBank//// Created by 吴海超 on 15/4/1.////#import#define KWHC_IMAGE_SIZE //图标尺寸@interface WHC_RadioButton : UIButton@end

WHC_RadioButton.m源文件如下:

//// WHC_RadioButton.m// CTBMobileBank//// Created by 吴海超 on 15/4/1.////#import “WHC_RadioButton.h”@implementation WHC_RadioButton//处理按钮标题区域- titleRectForContentRect:contentRect{ contentRect.origin.x = KWHC_IMAGE_SIZE; return contentRect;}//处理图标区域- imageRectForContentRect:contentRect{ CGRect rect = CGRectZero; rect.origin.x = 0.0; rect.origin.y = - KWHC_IMAGE_SIZE) / 2.0; rect.size.height = KWHC_IMAGE_SIZE; rect.size.width = KWHC_IMAGE_SIZE; return rect;}@end

篇2:iOS开发系列之常用自定义控件开发集―自定义状态栏消息提示控件开发<\/h2>

在实际开发中消息提示时很常见的需求,为了个性化和拥有简洁的UI状态栏提示是比较好的方案,好处很多如:不遮挡主UI,新意,下面贴出实现代码,

WHC_StatusBarMessage.h头文件如下:

//// WHCStatusBarMessage.m// WHCStatusBarMessage//// Created by apple on 14-3-28.// Copyright apple. All rights reserved.//#import “WHC_StatusBarMessage.h”#define kPading //边距#define kLogoWidth //图标logo宽度@interface WHC_StatusBarMessage{ UILabel * msgLab; //消息标签 UIImageView * logoImgV; //logo图标对象 UIImage * logoImg; //logo图标 CGFloat height; //高度 CGFloat screenWidth; //屏幕宽度 CGFloat screenHeight; //屏幕高度}@propertyUILabel * statusLab;@propertyUIImageView * logImgView;@propertyNSTimer * runTimer; //停留时钟@end@implementation WHC_StatusBarMessagestatic WHC_StatusBarMessage * msb;//构建单例+shareStatusBar{ static dispatch_once_t onceToken; dispatch_once; return msb;}//初始化UI-init{ CGRect statusFrame. = [UIApplication sharedApplication].statusBarFrame; height = statusFrame.size.height; screenWidth = [UIScreen mainScreen].bounds.size.width; screenHeight = [UIScreen mainScreen].bounds.size.height; self = [super initWithFrame.:statusFrame]; if{ self.frame. = statusFrame; self.autoresizingMask = UIViewAutoresizingFlexibleWidth; self.windowLevel = UIWindowLevelStatusBar + 1.0; self.backgroundColor = kWHC_StatusBarMessageBack_Color; logoImg = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@“29x29” ofType:@“png”]]; logoImgV = [[UIImageView alloc]initWithFrame.:CGRectMake]; logoImgV.backgroundColor = [UIColor clearColor]; [self addSubview:logoImgV]; msgLab = [[UILabel alloc]initWithFrame.:CGRectMake, statusFrame.size.height)]; msgLab.backgroundColor = [UIColor clearColor]; msgLab.font = [UIFont systemFontOfSize:14.0]; msgLab.textColor = [UIColor whiteColor]; [self addSubview:msgLab]; //注册单击事件 UITapGestureRecognizer * tapStatusBar = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector]; [self addGestureRecognizer:tapStatusBar]; //注册状态栏方向监听事件 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector name:UIApplicationWillChangeStatusBarFrameNotification object:nil]; } return self;}//处理单击状态栏消息- tapTopBar:tapGesture{ if]){ [_whcStatusBardelegate didTapTouchWHCStatusBarMessageDoSomething]; }}//显示状态栏消息-showTextMessage:strMessage delayTime:delay{ [Timer invalidate]; Timer = nil; if{ logoImg = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@“29x29” ofType:@“png”]]; } if delay = 3; logoImgV.image = logoImg; msgLab.text = strMessage; __block CGRect stateFrame. = self.frame; stateFrame.origin.y = -20.0; self.frame. = stateFrame; [UIView animateWithDuration:0.2 animations:^{ stateFrame.origin.y = 0.0; self.frame. = stateFrame; }]; [self makeKeyAndVisible]; Timer = [NSTimer scheduledTimerWithTimeInterval:delay target:self selector:@selector userInfo:nil repeats:NO];}-showMessage:strMessage logImage:logImage delayTime:delay{ logoImg = logImage; [self showTextMessage:strMessage delayTime:delay];}-dismissTimer{ double delayInSeconds = 0.3; dispatch_time_t popTime = dispatch_time); dispatch_after, ^{ msb.hidden = YES; });}#pragma mark - screenChange-screenOrientationChange:notif{ UIInterfaceOrientation rientation = [[[notif userInfo] objectForKey:UIApplicationStatusBarOrientationUserInfoKey] integerValue]; switch { case UIInterfaceOrientationPortrait:self.transform. = CGAffineTransformIdentity;self.frame. = CGRectMake;break; case UIInterfaceOrientationPortraitUpsideDown:self.transform. = CGAffineTransformMakeRotation; = CGPointMake;self.bounds = CGRectMake;break; case UIInterfaceOrientationLandscapeLeft:self.transform. = CGAffineTransformMakeRotation; = CGPointMake;self.bounds = CGRectMake;break; case UIInterfaceOrientationLandscapeRight:self.transform. = CGAffineTransformMakeRotation; = CGPointMake;self.bounds = CGRectMake;break; default:break; }}@end

篇3:IOS开发―自定义多选相册<\/h2>

自定义多选相册

主要思路

导入AssetsLibrary框架 从资源库中获取获取资源组【0】,过滤【1】照片后在列表中显示组, 点击资源组进入对应的相册中,获取组中的所有照片资源【2】

【0】获取资源组[_assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^ { if {[_assetsArray addObject:group];[_tableView reloadData]; } } failureBlock:^ { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@提示 message:@相册获取失败 delegate:self cancelButtonTitle:@取消 otherButtonTitles: nil]; [alert show]; }];

【1】过滤[_assetsGroup setAssetsFilter:[ALAssetsFilter allPhotos]];

【2】获取照片资源- getImages{ _thumbnailMeasure = *PHOTO_DEFAULT_MARGIN)/self.numberOfImageEachRow; CGRect frame. = CGRectMake; [self.assetsGroup enumerateAssetsUsingBlock:^ { if {AssetView *assetView = [[AssetView alloc]initWithAsset:result WithFrame.:frame];assetView.delegate = self;[_assetsArray addObject:assetView]; } }];}相关操作

获取资源组名

[_assetsGroup valueForProperty:ALAssetsGroupPropertyName];

获取资源组的海报缩略图

[UIImage imageWithCGImage:_assetsGroup.posterImage];

获取照片资源的正方形缩略图

[UIImage imageWithCGImage:_asset.thumbnail];

[[asset defaultRepresentation] fullResolutionImage]];

获取资源类型

[asset valueForProperty:ALAssetPropertyType];

篇4:iOS开发系列之常用自定义控件开发集―自定义UITableViewCell侧滑菜单控件开发<\/h2>

在很多app中就有UITableViewCell左滑出现菜单如系统删除按钮,但是系统的只能有一个,有很多需求需要个性化不仅可以放文字还可以放按钮修改背景色创建多个菜单项,那么系统提供的肯定不适合,所以我们需要自己手工打造,

直接上代码如下:

WHC_MenuCell.h 头文件如下:

//// WHC_MenuCell.m// WHC_MenuCell//// Created by 吴海超 on 15/4/3.// Copyright Sinosun Technology Co., Ltd. All rights reserved.//#import@class WHC_MenuCell;@protocol WHC_MenuCellDelegate- WHC_MenuCell:whcCell didPullCell:index;//拉动tableView的回调@end@interface WHC_MenuCell : UITableViewCell@property CGFloat menuViewWidth; //菜单总宽度@property NSArray * menuItemTitles; //每个菜单的标题@property NSArray * menuItemTitleColors; //每个菜单的文字颜色@property NSArray * menuItemBackImages; //每个菜单的背景图片@property NSArray * menuItemNormalImages; //每个菜单正常的图片@property NSArray * menuItemSelectedImages; //每个菜单选中的图片@property NSArray * menuItemBackColors; //每个菜单的背景颜色@property NSArray * menuItemWidths; //每个菜单的宽度@property UIView * ContentView;//自定义内容view@property CGFloat fontSize; //字体大小@property NSInteger index;//cell下标@property iddelegate; //cell代理//单击菜单项- clickMenuItem:sender;//关闭菜单- closeCellWithAnimation:b;//关闭批量菜单- closeCellWithTableView:tableView index:index animation:b;//开始或者正在拉开菜单- startScrollviewCell:state x:moveX;//结束拉开菜单- didEndScrollViewCell:state;@end

WHC_MenuCell.m源文件如下:

//// WHC_MenuCell.m// WHC_MenuCell//// Created by 吴海超 on 15/4/3.// Copyright 20 Sinosun Technology Co., Ltd. All rights reserved.//#import “WHC_MenuCell.h”#define KWHC_MENUCELL_ANMATION_PADING @interface WHC_MenuCell { BOOL _isOpen; //是否打开菜单 BOOL _isScorllClose; //是否滚动关闭菜单 CGFloat _startX; //存储拉开菜单开始触摸x坐标 UIView* _menuView;//菜单view UIPanGestureRecognizer * _panGesture; //手势}@end@implementation WHC_MenuCell//初始化UI- initUI{ _panGesture = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector]; _panGesture.delegate = self; [ntentView addGestureRecognizer:_panGesture]; UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector]; tapGesture.delegate = self; [ntentView addGestureRecognizer:tapGesture]; if{ _menuItemTitles = @[]; } if{ _menuItemBackImages = @[]; } if{ _menuItemBackColors = @[[UIColor redColor]]; } if{ _menuItemTitleColors = @[[UIColor blackColor]]; } if{ _menuItemWidths = @[]; } if{ _menuItemNormalImages = @[]; } if{ _menuItemSelectedImages = @[]; } CGFloat _menuViewX = CGRectGetWidth - _menuViewWidth; _menuView = [[UIView alloc]initWithFrame.:CGRectMake, 0.0, _menuViewWidth, CGRectGetHeight)]; _menuView.backgroundColor = [UIColor clearColor]; [ntentView insertSubview:_menuView belowSubview:_ContentView]; NSInteger menuItemCount = _unt; NSInteger menuBackImageCount = _unt; NSInteger menuBackColorCount = _unt; NSInteger menuTitleColorCount = _unt; NSInteger menuItemWidthCount = _unt; NSInteger menuItemNormalImageCount = _unt; NSInteger menuItemSelectedImageCount = _unt; CGFloat btnWidth = _menuViewWidth / menuItemCount; CGFloat = ^{ CGFloat width = 0.0; for {width += [_menuItemWidths[j] floatValue]; } return width; }; //创建菜单按钮 for { UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.tag = i; CGRect btnRc = CGRectMake); btn.frame. = btnRc; if{btnRc.origin.x = currentWidth;btnRc.size.width = [_menuItemWidths[i] floatValue];btn.frame. = btnRc; } [btn setTitle:_menuItemTitles[i] forState:UIControlStateNormal]; NSInteger titleColorIndex = i; if{titleColorIndex = menuTitleColorCount - 1;if{ titleColorIndex = 0;} } if{[btn setTitleColor:_menuItemTitleColors[titleColorIndex] forState:UIControlStateNormal]; } NSInteger imageIndex = i; if{imageIndex = menuBackImageCount - 1;if{ imageIndex = 0;} } if{[btn setBackgroundImage:[UIImage imageNamed:_menuItemBackImages[imageIndex]] forState:UIControlStateNormal]; } NSInteger colorIndex = i; if{colorIndex = menuBackColorCount - 1;if{ colorIndex = 0;} } if{btn.backgroundColor = _menuItemBackColors[colorIndex]; } if{NSString * imageName = _menuItemNormalImages[i];if{ [btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];}if{ NSString * selectedImageName = _menuItemSelectedImages[i]; if{ [btn setImage:[UIImage imageNamed:selectedImageName] forState:UIControlStateHighlighted]; }} } btn.titleLabel.minimumScaleFactor = 0.1; btn.titleLabel.adjustsFontSizeToFitWidth = YES; if{_fontSize = 18.0; } btn.titleLabel.font = [UIFont boldSystemFontOfSize:_fontSize]; [btn addTarget:self action:@selector forControlEvents:UIControlEventTouchUpInside]; [_menuView addSubview:btn]; }}//加载xib- awakeFromNib{ [self initUI];}- initWithStyle.:style. reuseIdentifier:reuseIdentifier{ self = [super initWithStyle.:style. reuseIdentifier:reuseIdentifier]; if{ } return self;}//设置滚动列表时菜单关闭状态- setIsScrollClose{ _isScorllClose = NO;}//下面两个方法有子类实现属于触摸监听方法- startScrollviewCell:state x:moveX{}- didEndScrollViewCell:state{}//单击菜单项- clickMenuItem:sender{ [self closeCellWithAnimation:YES];}//批量关闭tableview上得多个cell菜单- closeCellWithTableView:tableView index:index animation:b{ NSArray * indexPathArr = [tableView indexPathsForVisibleRows]; BOOL handleResult = NO; for { if{WHC_MenuCell * cell = [tableView cellForRowAtIndexPath:indexPath];[cell setIsScrollClose];if{ handleResult = YES;} }else if{WHC_MenuCell * cell = [tableView cellForRowAtIndexPath:indexPath];if{ [cell setIsScrollClose];}if{ handleResult = YES;} } } return handleResult;}//关闭cell菜单- closeCellWithAnimation:b{ BOOL isClose = NO; if{ isClose = YES; if{[UIView animateWithDuration:0.2 animations:^{ _ContentView.transform. = CGAffineTransformMakeTranslation;}completion:^ { _isOpen = NO; [self didEndScrollViewCell:_isOpen];}]; }else{_ContentView.transform. = CGAffineTransformMakeTranslation;_isOpen = NO;[self didEndScrollViewCell:_isOpen]; } } return isClose;}- setSelected:selected animated:animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state}//手势处理- handlePanGesture:panGesure{ switch { case UIGestureRecognizerStateBegan:{_startX = _ContentView.transform.tx;_isScorllClose = [_delegate WHC_MenuCell:self didPullCell:_index]; }break; case UIGestureRecognizerStateChanged:{if{ return;}CGFloat currentX = _ContentView.transform.tx;CGFloat moveDistanceX = [panGesure translationInView:panGesure.view].x;CGFloat velocityX = [panGesure velocityInView:panGesure.view].x;CGFloat moveX = _startX + moveDistanceX;if{//right if{ [panGesure setTranslation:CGPointMake inView:panGesure.view]; break; }}else{ if{ moveX = currentX - 0.4; [panGesure setTranslation:CGPointMake inView:panGesure.view]; }}_ContentView.transform. = CGAffineTransformMakeTranslation;[self startScrollviewCell:_isOpen x:moveDistanceX]; }break; case UIGestureRecognizerStateCancelled: case UIGestureRecognizerStateEnded:{_isScorllClose = NO;if{ [UIView animateWithDuration:0.2 animations:^{ _ContentView.transform. = CGAffineTransformMakeTranslation; }completion:^ { _isOpen = NO; [self didEndScrollViewCell:_isOpen]; [UIView animateWithDuration:0.2 animations:^{_ContentView.transform. = CGAffineTransformMakeTranslation; }]; }];}else if { CGFloat tx = fabsf; if){ [UIView animateWithDuration:0.2 animations:^{_ContentView.transform. = CGAffineTransformMakeTranslation; }completion:^ {_isOpen = NO;[self didEndScrollViewCell:_isOpen]; }]; }else{ [UIView animateWithDuration:0.2 animations:^{_ContentView.transform. = CGAffineTransformMakeTranslation; }completion:^ {_isOpen = YES;[self didEndScrollViewCell:_isOpen]; }]; }} }break; default:break; }}- handleTapGestrue:tapGesture{}#pragma mark - UIGestureRecognizerDelegate- gestureRecognizerShouldBegin:gestureRecognizer{ if{ return [_delegate WHC_MenuCell:self didPullCell:-1]; }else if{ UIPanGestureRecognizer * panGesture = gestureRecognizer; CGPoint velocityPoint = [panGesture velocityInView:panGesture.view]; if > fabsf){return YES; }else{_isScorllClose = [_delegate WHC_MenuCell:self didPullCell:-1];return _isScorllClose; } } return NO;}@end

篇5:iOS开发系列之常用框架开发集―自定义UINavitationController开发1<\/h2>

在实际开发过程中构建我们项目框架时为了用户体验好和个性化往往需要手势返回的功能,虽然ios7以后的系统支持这个但是系统有些不足如:支持手势返回需要ios7.0以上系统,手势非要从左边缘开始拉,触摸拉开效果不能自定义,然而我们今天就给大家开发一款支持手势返回没有系统要求(ios5.0以上),从哪里可以触摸返回可以自定义的一个导航框架,

我这个是以淘宝app的导航框架为例开发。

WHC_NavigationController.h头文件如下:

//// WHC_NavigationController.h// WHC_NavigationController//// Created by 吴海超 on 15/4/13.// Copyright 2015年 吴海超. All rights reserved.//#import#define KWHC_Nav_Main_VC_Name //主控制器类名#define KWHC_Nav_Touch_Back_Rate //触摸拖拽可以返回条件比例#define KWHC_Nav_Pop_Form_Border //note > 0 from border pull < 0 any where pull diatancex > 30@interface WHC_NavigationController : UINavigationController//单例默认用KWHC_Nav_Main_VC_Name作为主控制器+ sharedInstance;//单例自定义主控制器+ sharedInstanceWithMainVC:mainVC;@end

WHC_NavigationController.m源文件如下:

//// WHC_NavigationController.m// SideMenu//// Created by 吴海超 on 15/4/13.// Copyright 2015年 吴海超. All rights reserved.//#import “WHC_NavigationController.h”#define KWHC_NAV_LEFT_VIEW_TAG //左边view的tag#define KWHC_NAV_LEFT_PUSH_VIEW_TAG //左边pushView的tag#define KWHC_NAV_NAVBAR_TAG //导航条的tag#define KWHC_NAV_ANIMATION_DURING //pop或者push动画周期#define KWHC_NAV_POP_VIEW_CENTERX_OFFSET //popView中心x轴偏移 (禁止修改值)#define KWHC_NAV_PUSH_VIEW_CENTERX_OFFSET //pushView中心x偏移 #define KWHC_NAV_POP_VIEW_ALPHA //popview透明系数#define KWHC_NAV_ALLOW_PULL_DISTANCE //可以拉开允许的距离@interface WHC_NavigationController { UIPanGestureRecognizer * _panGesture; //手势 CGFloat_currentTx; //存储当前触摸x值 NSMutableArray * _snapshootList; //快照数组 UIView * _popView; //弹出view UIView * _pushView; //压站view UIView * _topView; //顶部视图 BOOL _willOpen; //是否将要拉开 BOOL _didOpen; //是否已经拉开 BOOL _isTouchPop; //是否触摸弹出}@endstatic WHC_NavigationController * whc_navigation;@implementation WHC_NavigationController//单例实现+ sharedInstance{ UIViewController * rootVC = [[NSClassFromString alloc]init]; // UIViewController * rootVC = [[NSClassFromString alloc]initWithNibName:KWHC_Nav_Main_VC_Name bundle:nil]; return [WHC_NavigationController sharedInstanceWithMainVC:rootVC];}+ sharedInstanceWithMainVC:mainVC{ static dispatch_once_t predicate; dispatch_once; return whc_navigation;}#pragma mark - initMothed//重载父类初始化方法- initWithRootViewController:rootViewController{ self = [super initWithRootViewController:rootViewController]; if{ [self registPanGesture:YES]; } return self;}- initWithCoder:aDecoder{ self = [super initWithCoder:aDecoder]; if{ [self registPanGesture:YES]; } return self;}- init{ self = [super init]; if{ [self registPanGesture:YES]; } return self;}- initWithNibName:nibNameOrNil bundle:nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if{ [self registPanGesture:YES]; } return self;}#pragma mark - gestureMothed//注册手势事件- registPanGesture:b{ self.interactivePopGestureRecognizer.enabled = NO; if{ if{_panGesture = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector];[_panGesture delaysTouchesBegan];[self.view addGestureRecognizer:_panGesture]; } }else{ if{[self.view removeGestureRecognizer:_panGesture];_panGesture = nil; } }}#pragma mark - handleGesture- handlePanGesture:panGesture{ switch { case UIGestureRecognizerStateBegan:{_currentTx = self.view.transform.tx; }break; case UIGestureRecognizerStateChanged:{CGFloat moveDistance = [panGesture translationInView:panGesture.view].x;if{ if){ if{return; } }else{ CGFloat touchX = [panGesture locationInView:panGesture.view].x; if{return; } }}CGFloat riX = [panGesture velocityInView:panGesture.view].x;CGFloat rate = moveDistance / CGRectGetWidth;if{//open door [self popView]; if{ UIView * ldPopView = [self.view.superview viewWithTag:KWHC_NAV_LEFT_VIEW_TAG]; if{[oldPopView removeFromSuperview]; } [self.view.superview insertSubview:_popView belowSubview:self.view]; _willOpen = YES; } if{ self.view.transform. = [self initAffineTransform.:moveDistance + _currentTx]; _ = CGPointMake / 2.0, _.y); _popView.alpha = KWHC_NAV_POP_VIEW_ALPHA * ; }}else if{//close door self.view.transform. = [self initAffineTransform.:moveDistance + _currentTx]; _ = CGPointMake / 2.0, _.y); _popView.alpha = KWHC_NAV_POP_VIEW_ALPHA * ;}else if{ if{ self.view.transform. = [self initAffineTransform.:0.0]; _ = CGPointMake; _popView.alpha = KWHC_NAV_POP_VIEW_ALPHA; }} }break; case UIGestureRecognizerStateCancelled: case UIGestureRecognizerStateEnded:{if{ if < KWHC_Nav_Touch_Back_Rate){ [self closeLeftView:YES]; }else{ [self closeLeftView:NO]; }} }break; default:break; }}//偏移变换- initAffineTransform.:x{ return CGAffineTransformMakeTranslation;}//对当前控制器进行快照- snapshootNavBar:vc{ UIGraphicsBeginImageContextWithOptions; [self.view.layer renderInContext:UIGraphicsGetCurrentContext]; UIImage * snapshootImage = UIGraphicsGetImageFromCurrentImageContext; UIGraphicsEndImageContext; return snapshootImage;}//获取要弹出view的快照view- popView{ if{ _popView = [_snapshootList lastObject]; _ = CGPointMake; _popView.alpha = KWHC_NAV_POP_VIEW_ALPHA; }else{ _popView = nil; } return _popView;}//获取已经push的快照view- pushView{ if{ _pushView = [_snapshootList lastObject]; _ = CGPointMake; _pushView.alpha = 1.0; }else{ _pushView = nil; } return _pushView;}//pop或者取消pop操作- closeLeftView:isClose{ [self registPanGesture:NO]; _willOpen = NO; UIView * mainView = self.view; __weak typeof sf = self; if{ [UIView animateWithDuration:KWHC_NAV_ANIMATION_DURING delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{_ = CGPointMake;_popView.alpha = KWHC_NAV_POP_VIEW_ALPHA;mainView.transform. = [sf initAffineTransform.:0.0]; } completion:^ {[sf registPanGesture:YES];[_popView removeFromSuperview];_popView = nil; }]; }else{//pop opeartion [UIView animateWithDuration:KWHC_NAV_ANIMATION_DURING delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{mainView.transform. = [sf initAffineTransform.:CGRectGetWidth];_ = CGPointMake / 2.0, _.y);_popView.alpha = 1.0; } completion:^ {[sf registPanGesture:YES];_isTouchPop = YES;mainView.transform. = [sf initAffineTransform.:0];[sf popViewControllerAnimated:NO]; }]; }}#pragma mark - viewLoad- viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.}- didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}//重载父类push方法- pushViewController:viewController animated:animated{ if{ _snapshootList = [NSMutableArray array]; } [_snapshootList addObject:[[UIImageView alloc]initWithImage:[self snapshootNavBar:viewController]]]; [self pushView]; //忽略第一次push操作 if{ __weak typeof sf = self; //防止重复push _topView = ViewController.view; _topView.userInteractionEnabled = NO; [super pushViewController:viewController animated:NO]; self.view.transform. = [self initAffineTransform.:CGRectGetWidth]; UIView * ldPushView = [self.view.superview viewWithTag:KWHC_NAV_LEFT_PUSH_VIEW_TAG]; if{[oldPushView removeFromSuperview];ldPushView = nil; } _ = CGPointMake / 2.0, _.y); [self.view.superview insertSubview:_pushView belowSubview:self.view]; [UIView animateWithDuration:KWHC_NAV_ANIMATION_DURING delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{_ = CGPointMake / 2.0, _.y);_pushView.alpha = KWHC_NAV_POP_VIEW_ALPHA;sf.view.transform. = [sf initAffineTransform.:0]; } completion:^ {[_pushView removeFromSuperview];_pushView = nil; }]; }else{ [super pushViewController:viewController animated:animated]; }}//重写父类pop方法- popViewControllerAnimated:animated{ UIViewController * viewController = nil; if{ //不是触摸弹出操作 __weak typeof sf = self; __block UIView * popView = [[UIImageView alloc]initWithImage:[self snapshootNavBar:nil]]; viewController = [super popViewControllerAnimated:NO]; if{self.view.transform. = [self initAffineTransform.:-CGRectGetWidth];self.view.alpha = KWHC_NAV_POP_VIEW_ALPHA;UIView * ldPopView = [self.view.superview viewWithTag:KWHC_NAV_LEFT_VIEW_TAG];if{ [oldPopView removeFromSuperview]; ldPopView = nil;} = CGPointMake / 2.0, .y);[self.view.superview insertSubview:popView belowSubview:self.view];[UIView animateWithDuration:KWHC_NAV_ANIMATION_DURING delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ = CGPointMake * 1.5, .y); sf.view.transform. = [sf initAffineTransform.:0]; sf.view.alpha = 1.0;} completion:^ { [popView removeFromSuperview]; popView = nil; [_snapshootList removeLastObject];}]; } }else{ //清除popview的快照存储 [_snapshootList removeLastObject]; [_popView removeFromSuperview]; _popView = nil; viewController = [super popViewControllerAnimated:animated]; } _isTouchPop = NO; return viewController;}#pragma mark - UINavigationControllerDelegate- navigationController:navigationController willShowViewController:viewController animated:animated{ }- navigationController:navigationController didShowViewController:viewController animated:animated{ if{ _topView.userInteractionEnabled = YES; }}@end

❈ 自定义造价工作总结

摘要:在介绍消费总线物理层技术参数的基础上,给出了P89C51RD2单片机与P300/P111构成的电力线扫频载波通讯模块的设计方案,重点论述了通讯模块电力线接口电路设计中所涉及的滤波电路、放大电路、耦合电路及其保护措施。

智能家庭要求家用电器经网络(总线)实现互联、互操,总线协议是其精髓所在。目前,国际上占主导地位的家庭网络标准有:美国的X10[1]、消费总线(CEBus)[2]、日本的`家庭总线(HOME BUS)[3]、欧洲的安装总线(EIB)[4]。

消费总线使用五种类型的介质(电力线、无线、红外、双绞线和同轴电缆),其中以电力线的应用最为广泛。消费总线得到IBM、Hownywell、Microsoft、Intellon、Lucent、Philips、Siements等大公司的支持,1992年成为美国电力工业协会的标准(EIA600、EIA721)。,EIA600成为美国ANSI标准;6月,微软和CEBus委员会共同宣布支持CEBus的简单控制协议SCP。SCP是未来微中UPNP协议的子集。

鉴于家庭中电力线载波通讯的特殊性,CEBus采用价格低廉、简单易行的线性调频(chirp)扩频调制技术。摒弃了传统电力线载波通常应用的直接序列扩频、调频扩频、跳时扩频等设备复杂、价格昂贵的扩频调制技术。

消费总线的物理层有四种码,分别是:“0”、“1”、“EOF”和“EOP”。均为扫频信号,正弦信号载波,从203kHz经过19个周期线性地变为400kHz,再经过1个周期变为100kHz,然后在5个周期中变为203kHz,整个过程用时100μs,也就是1个UST(Unit symble time,在消费总线中用多少个UST来度量时间)。其波形如图1所示。

chirps扫频载波需经过放大耦合到电力线上,放大后的幅度应适中。幅度太低,给接收电路带来困难;幅度太大,又会对电力线上的设备产生干扰。CEBus的规定如表1[5]所示。

设备工作电压最小幅值最大幅值负载范围~120V2.5Vpp7Vpp10Ω~2kΩ~240V5Vpp14Vpp39Ω~8.2kΩ设备工作电压设备输入阻抗(在频率20kHz~50000kHz)载波幅值

[1] [2] [3]

❈ 自定义造价工作总结

自定义通知在日常生活中扮演着重要的角色,它不仅给人们提供了重要的信息,还可以成为一种有效的沟通工具。通过自定义通知,我们能够更准确、详细、具体和生动地表达我们的意思。本文将以标题“关于校园安全的自定义通知”为例,详细探讨通过自定义通知提供校园安全信息的作用和方法。



校园安全一直是广大师生和家长十分关注的问题。为了更好地确保校园内的安全,学校特别设计了自定义通知系统。每当发生与安全有关的事件或者需要通知全体师生的重要事项时,学校都会利用这个系统进行通知。



首先,自定义通知可以提供准确的信息。每一条通知都会明确描述发生的事件,包括日期、时间、地点以及事件的性质。比如,当校园发生了火警时,自定义通知会准确地说明火警的发生地点是在哪个楼层的哪个教室,并告知师生们要及时撤离到安全区域。这样的详细信息可以让师生们更好地了解事态的严重性,并采取相应的措施,确保自己的安全。



其次,自定义通知可以传达具体的指示。在紧急情况下,学校的领导和管理人员需要迅速而具体地告知师生们应该采取的行动。通过自定义通知,他们可以传达出清晰的指示,使师生们明确知道应该如何行动。比如,当发生地震时,通知可以告知大家迅速躲到桌子下或者迅速撤离到开阔地区等,这些具体的指示能够使人们有条不紊地行动起来,最大程度地减少伤亡。



此外,自定义通知还能够让人们更好地了解事件的背景和原因。有些事件可能需要进一步解释其发生的原因以及可能产生的影响。比如,当学校突然关闭某个区域时,自定义通知可以解释这个决定背后的原因,如进行卫生检查或是设备维修。这样,师生们在受到影响时可以理解学校的决定,并且能够主动配合,避免产生不必要的尴尬或疑虑。



最后,通过自定义通知,学校能够生动地向师生们传达重要的安全知识和技能。在日常生活中,通过通知师生们如何防范欺凌、网络安全或是安全走路等重要主题,学校能够帮助他们更仔细地观察和应对潜在的危险。通过给出具体的例子,例如校园内发生了偷窃案件或者网络诈骗事件等,自定义通知能让师生们更加真实地意识到可能存在的风险,并有针对性地提供相应的解决方法和早期预防措施。



综上所述,自定义通知在提供校园安全信息方面具有重要作用。它们通过详细、具体和生动的描述,准确传达相关信息,并为人们提供明确的指示和解释。此外,自定义通知还可以帮助人们更好地了解事件的背景和原因,并传达重要的安全知识和技巧。通过使用自定义通知系统,学校能够更好地维护校园安全,保障师生的利益和生命安全。

❈ 自定义造价工作总结


阅读了《自定义的幸福》都想幸运拥有福气的那个人,幸福的判定标准又是参差不齐,可能我会觉得幸福是一种简单的生活,和谐有家的感觉,住有遮瓦,乐有相伴,闲有爱好!当然,在这个飞速的经济社会,又有几人去关注那惊鸿一瞥的一刹那,都热衷于快餐式,甚至感情,家庭都快餐了!
五十岁来哒一半的.我们,可以脑海一片空白,也可任思绪天马行空,一心追求属于我们幸福,脚步缓一缓,纵然感受不到幸福的给力,也不必去伤怀它的迟到,哪怕在片刻间稍纵其逝,或者不幸就在下一刻悄然而至,最终还是去坦然面对,人的生死轮回,喜怒哀乐,都有其自然规律,

资料共享平台

《《自定义的幸福》读书心得》()。

更多应届毕业生求职网【读书笔记】推荐阅读:dushubiji/

❈ 自定义造价工作总结

摘要:在介绍VXI总线协议的基础上,通过对器件寻址、端口地址译码、DTB总线仲裁和中断仲裁等几部分工作原理的分析,提出了一种VXI寄存器基接口电路的实现方法,并给出了用可编程逻辑器件实现的过程。该接口电路已在多种VXI寄存器基器件中得到应用。

VXI(VMEbus eXtention for Instrumentation)总线是一种完全开放的、适用于各仪器生产厂家成为高性能测试系统集成的首选总线。VXI总线器件主要分为:寄存器基器件、消息基器件和存储器基器件。目前寄存器基器件在应用中所占比例最大(约70%),其实现方法在遵守VME协议的前提下,根据实际需要各有不同。VXI接口电路用于实现器件的地址寻址、总线仲裁、中断仲裁和数据交换等。设计VXI接口首先需明确寻址空间和数据线宽度,VXI器件寻址有A16/A24、A16/A32和A16三种。A16/A24寻址支持16M字节空间,A16/A32寻址支持4G字节空间,A16寻址支持64字节地址空间,但不论哪种寻址方式,A16寻址能力是不可缺的。本文设计的VXI寄存器基接口电路是A16寻址的,支持D8和D16数据线传输,有较宽的使用范围。其接口电路原理框图如图1所示。

DTB(数据传输总线)及DTB仲裁是VXI接口的核心,DTB主要包括:寻址总线、数据总线和控制总线。其主要任务是:①通过地址修改码(AM)决定寻址空间和数据传输方式。②通过DS0*、DS1*、LWORD*、A1控制数据总线的宽度。③通过总线仲裁决定总线优先使用权。

VXI总线器件在A16(16位地址)寻址时,有64字节的地址空间,其呈部分作为器件配置寄存器地址(已具体指定),其余可用作用户电路端口地址。每个器件的寄存器基地址由器件本身唯一的逻辑地址来确定。地址修改线在DTB周期中允许主模块将附加的器件工作模式信息传递给从模块。地址修改码(AM)共有64种,可分为三类:已定义修改码、保留修改码和用户自定义码。在已定义的地址修改码中又分为三种:①短地址AM码,使用A02~A15地址线;②标准地址AM码,使用A02~A23地址线;③扩展地址AM码,使用A02~A31地址线。A16短地址寻址主要是用来寻址器件I/O端口,其地址修改码为:29H、2DH。

图2为VXI器件寻址电路图,其中U1为可编程逻辑器件,其表达式为:VXIENA*=AS*+!IACK*A14+!A15+!AM5+AM4+!AM3+AM1+!AM0;(!IACK*表示系统无中断请求)。寻址过程为:当VXI主模块发出的地址修改码对应为29或2D、总线上地址A6~A13和逻辑地址设置开关K1的设置相同并且地址允许线AS有效时,图2中的MYVXIENA*有效(为低),表示本器件允许被VXI系统寻址。在允许本器件寻址的基础上(即MYVXIENA*有效),再通过MYVXIENA*、A1~A5、LWORD*、DS0*、DS1*译码生成64字节地址,根据VME总线协议可译出单字节地址和双字节地址。协议协定:当单字节读写时,奇地址DS0*为低、DS1*为高,偶地址DS1*为低、DS0*为高,LWORD*为高;双字节读写时,DS0*和DS1*为低、LWODR*为高;四字节读写时,DS0*、DS1*和LWORD*都为低。

DTB数据传输应答主要依赖DTACK*和DS0*之间的互锁性握手关系,而与数据线上有效数据什么时候出现无关,所以单次读写操作的速度完全决定应答过程。为适应不同速度用户端口读写数据的可靠性,本文采用由用户端口数据准备好线(DATREADY*)

[1] [2] [3] [4]

❈ 自定义造价工作总结

执子之手与子偕老!左手牵右手,我说过我会等就会一直等

——题记

没有人会把谁当傻子,不爱你的人会把你的执着当作一种傻,最后知道的结果,一个人也就放声大哭!而他呢,若无其事的继续他的生活,这就是感情,这就是生活!谁也逃不过命运的安排,有缘没有缘分都是一种传说吗?我一直很真很真的对你说每一句话!很认真很认真的记住你说的每一句话。青春的年轮谁都会错过一些美好的事情!在火车站的时候你就会明白,人生没有那么多的等待,一转身的朋友有可能就是一辈子!世界上每一个人都是可爱的,一生中总会有那么一两个人会看到她最最可爱的一面。

忙碌的工作真的可以让自己缓解很多情绪,思想单纯的想着要完成的任务,累了就回去躺上睡上一觉,饿了就吃的饱饱的,然后新的一天继续前行。纠结的情绪会让自己疲惫不堪!想念,其实很单纯!就像那纯净的天空一样湛蓝!你不想我,我不怪你,每一个人心底的思念只有自己明白!这个季节的雨天,会让人想起很多的东西,只是我想起你的时候还是微微一笑了!

不知道未来到底还有多远,但是明白了只要一直努力奔跑,幸福就会离自己不远!格式掉昨天,记住美好!那样才会快乐!最近总是很努力的学东西,最近总是很努力的让自己开心,最近总是很努力的让别人看到自己的微笑,最近的明天会好吗?

别人总是问我飞的高不高,会有谁问我累不累呢?幸福自定义!我期待明天!


❈ 自定义造价工作总结

摘要:介绍了民用飞机机载数据总线ARINC429的硬件接口板,该接口板采用DSP和FPGA实现四种ARINC429信号收发通道,使整个系统的处理速度大大提高。

机载数据总线ARINC429在当代的运输机和相当数量的民航客机(如A310、A300、A600、B757、B767)中有着广泛的应用。目前国内对ARINC429总线接口板的设计一般都是基于HARRIS公司的HS3282芯片完成的,它的缺点是路数有限、非常不灵活。因此对ARINC429总线接口板的研制,实现多通道ARINC429总线数据的接收和发送,成为目前对飞机载总线接口研究的重点,具有非常重要的现实意义和应用前景。

在现代民用飞机上,系统与系统之间、系统与部件之间需要传输大量信息。ARINC规范就是为了在航空电子设备之间传输数字数据信息而制定的一个航空运输的工业标准。

ARINC429(以下简称429)总线采用双绞屏蔽线传输信息,通过一对双绞线反相传输,具有很强的抗干扰能力。而调制方式则采用双极归零制的三态码方式,即信息由“高”、“零”和“低”状态组成的三电平状态调制。429电缆上的'信号及经电平转换后的信号如图1所示。429总线每一个字为32位,它的字同步是以传输周期至少4位的时间间隔也就是4位码字为基准的。

429总线接口板的主要功能是在429信号及相关外设之间起到桥梁作用,它既能接收双极归零制的429信号并将其转换为数字信号送入计算机或其它设备,又可将计算机或其它设备发出的数字信号转换为429信号输出。本文介绍的总线接口板采用FPGA和DSP实现四路429信号接收通道和四路429信号发送通道,且每路通道之间相互独立。在这个接口板中,每两个数据字之间的时间间隔可调,每一个收发通道能单独定义字间隔长度,每个通道校验方式可单独定义为奇校验或偶校验,数据发送可以选择单帧发送或自动自复发送(重复发送某一帧)。

整个接口板由调制电路、解调电路、FPGA、DSP和双口RAM组成,如图2所示。

429信号进入接口板后,首先要把429信号转换为数字电路可以识别的TTL电平。这里采用HOLT公司的HI-8482实现信号的解调,将标准的429总线信号转换成5V TTL数字信号。为了降低干扰,在429总线信号的四个输入管脚分别接入39pF高精度军品电容;采用HOLT公司的HI-8585芯片实现信号的调制,将TTL数字电平转换为标准的429信号。

按照429信号的编码格式、特点、传输规则以及协议要求,选用一片ALTERA公司的ACEX1K型的FPGA发送和接收四路数据。每一路分为接收部分和发送部分。

接收部分的主要作用是通过串/并转换将串行数据转换为32位并行数据,并对收到的数据自动实时差错控制。对于字间隔、位间隔出错等错误能进行自动检测,若无错误,则将数据分两次送至DSP的16位数据总线上,以供读取。接收模块结构框图如图3所示。

发送送的主要功能是将DSP送入的数据暂存在FPGA内部的FIFO中,等待发送命令。一旦接收发送控制指令,FIFO输出数据并通过并/串转换将并行数据转换为串行数据,同时加入预先设定的间隔。用户可通过写控制寄存器选择发送模式(即单帧发送或自动重复发送)、发送通道延迟设定、发送通道字间隔设定,还可通过读取状态位检查它的工作状态(发送缓冲器空、发送缓冲器满和是否正在发送)。发送模块结构框图如图4所示。

以上介绍的只是一路发送通道和接收通道,由于本系统共有四种独立的发送通道和四路独立的接收通道,故在FPGA中需设置四个接收模块和四个发送模块,通过DSP的地址线来选取其中的一路发送通道或接收通道。

sp;  FPGA内部结构是基于SRAM的,因此需要一片配置芯片固化内部逻辑。为了便于调试,采用JTAG模式和被动串行模式(PS)两种配置模式,调试时使用JTAG模式直接将逻辑写入FPGA内部,调试好后再用PS模式将程序写入配置芯片。通过对FPGA和配置芯片上的引脚进行跳线,可选择不同的配置方式。跳线电路如图5所示。

FPGA作为DSP的一个I/O外设,必须要对它的寄存器地址统一编址。在此将FPGA编址在DSP的I/O空间。由于FPGA的接收通道和发送通道的数据寄存器可以占用一个地址。

在整个系统的设计中,DSP主要用于控制FPGA工作、数据中转、与外设主机通信。DSP是整个系统的中枢,控制各个部分协调工作。利用DSP向FPGA写控制字,其中包含帧间隔长度大小等信息,可对FPGA进行控制;另外,根据FPGA的反馈状态,可倒入出相应的控制调整。考虑到用于控制FPGA的I/O口比较多,选用的DSP是TI公司的TMSLF2407A。TMSLF2407A的复用外围I/O口多达39个,图6是DSP与FPGA之间的具体连接。

DSP提供I/O操作信号/IS、读写选定信号R/W、读使能信号/RD、写使能信号/WE以及地址线低四位A0、A1、A2、A3。通过这些控制逻辑信号可区分四路通道及每路通道的高低字。

DSP与FPGA提供的其它辅助的控制和状态信号还包括:四路发送使能信号/ENTX[0..3],低电平有效;四路发送停止信号/TXT[0..3],低电平有效;四路接收通道清零信号/CHACLRN[0..3],低电平有效;接收数据到达信号/RER[0..3],用于告知DSP准备接收某一路通道已经到达的数据;发送数据准备好信号/TXR[0..3]信号,用于告知各个发送通道中是否还有未发出的数据暂存在FIFO里,低电平表示没有数据;发送通道FIFO满信号FUL[0..3],高电平有效;CLOBCLRN信号,用于FPGA初始化时对其内部进行全部清零;TESTREQ信号,用于对整个系统的自检。

整个电路板是通过双口RAM与外设主机进行通信的,双口RAM负责暂存外设要发送的数据和暂存FPGA处理过的数据。可把它大致分为8个区,每一个区负责存放四路接收通道和四路发送通道中的一路数据及控制字。利用双口RAM左右两中断的信箱可指挥接口板进行相应的操作。

软件的设计主要是DSP编程,DSP程序的主要任务就是初始化、管理DSP外围电路、控制FPGA的收发数据以及与外设交互。DSP的主程序流程图如图7所示。

整个接口电路板调试通过后,经过测试可以同时接收和发送四路ARINC429信号。这就解决了以后接口电路板通道数太少的瓶颈。利用FPGA密度高、结构灵活、设计时间短和可编程的优点,实现了对某路ARINC429信号的独立处理,再加上TI公司系列DSP丰富的I/O接口和较普通单片机更快的速度,实现了对FPGA的控制管理及与外设的通信。因此本系统对当今民用飞机机载数据通信总线互联提供了一些新型、先进的方法,具有相当普遍的实用意义。

❈ 自定义造价工作总结

java自定义任务类定时执行任务范本

Callable 和 Future接口

Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。

Callable和Runnable有几点不同:

(1)Callable规定的方法是call(),而Runnable规定的.方法是run().

(2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。

(3)call()方法可抛出异常,而run()方法是不能抛出异常的。

(4)运行Callable任务可拿到一个Future对象, Future表示异步计算的结果。

它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。

通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果。

复制代码 代码如下:

package com.yao;

import java.ncurrent.Callable;

import java.ncurrent.ExecutorService;

import java.ncurrent.Executors;

import java.ncurrent.Future;

public class CallableAndFuture {

/**

* 自定义一个任务类,实现Callable接口

*/

public static class MyCallableClass implements Callable {

// 标志位

private int flag = 0;

public MyCallableClass(int flag) {

this.flag = flag;

}

public String call() throws Exception {

if (this.flag == 0) {

// 如果flag的值为0,则立即返回

return "flag = 0";

}

if (this.flag == 1) {

// 如果flag的值为1,做一个无限循环

try {

while (true) {

System.out.println("looping......");

Thread.sleep(2000);

}

} catch (InterruptedException e) {

System.out.println("Interrupted");

}

return "false";

} else {

// falg不为0或者1,则抛出异常

throw new Exception("Bad flag value!");

}

}

}

public static void main(String[] args) {

// 定义3个Callable类型的任务

MyCallableClass task1 = new MyCallableClass(0);

MyCallableClass task2 = new MyCallableClass(1);

MyCallableClass task3 = new MyCallableClass(2);

// 创建一个执行任务的服务

ExecutorService es = Executors.newFixedThreadPool(3);

try {

// 提交并执行任务,任务启动时返回了一个Future对象,

// 如果想得到任务执行的结果或者是异常可对这个Future对象进行操作

Future future1 = es.submit(task1);

// 获得第一个任务的结果,如果调用get方法,当前线程会等待任务执行完毕后才往下执行

System.out.println("task1: " + future1.get());

Future future2 = es.submit(task2);

// 等待5秒后,再停止第二个任务。因为第二个任务进行的是无限循环

Thread.sleep(5000);

System.out.println("task2 cancel: " + future2.cancel(true));

// 获取第三个任务的输出,因为执行第三个任务会引起异常

// 所以下面的语句将引起异常的抛出

Future future3 = es.submit(task3);

System.out.println("task3: " + future3.get());

} catch (Exception e) {

System.out.println(e.toString());

}

// 停止任务执行服务

es.shutdownNow();

❈ 自定义造价工作总结

幻灯片自定义动画评课稿范文

吴老师执教的《拯救黑暗王国——幻灯片自定义动画》一课,观看后,受益匪浅。本课的教学目标是让学生在PPT中设置自定义动画,吴老师从学生感兴趣的话题入手:假想一天地球要毁灭了,陷入黑暗之中,全体师生一起去拯救王国。以这个话题,引出了三个学习任务:生命之星、希望之光、重建家园。三个任务层层递进,难度逐渐加深,同时又让学生激情高涨,富有探索慾望。

吴老师课堂上使用的鼓励语也是极具特色的,如:不放弃,不抛弃,就会有奇迹,学贵有疑等等。吴老师的整个教学过程中体现了教师主导,学生为主体的教学思想,也充分运用了学生的自主、合作、探讨学习的`新课程理念。在教学过程中,教师成为活动的组织者、服务者,求知过程的合作者和向导。由于集体听讲过程的最大限度降低,使学生有更大的自主性和自由空间,积极主动地学习和进行知识探索活动,使学生成为学习的真正主人。

❈ 自定义造价工作总结

在光刻机双工件台控制系统中,VME总线使用了三个接口共430根线路接入,通过背板互联的有P1,P2两个接口320根线路接入。实际上VME标准协议并没有完全使用全部线路,而是为用户预留了部分自定义线路,增加了设计的灵活性。由于VME总线主要用于工控机与各板卡的通信,同步控制卡与激光计数卡和光栅译码卡使用总线就会产生严重冲突,影响采用是实时性,因此这里将VME总线中未使用的管脚作为自定义总线管脚,这样避免了增加新的硬件接口,而且在硬件设计上可以和VME总线一起考虑。

自定义同步总线数据传输完全根据主控总线提供的时序进行,地址线包含了对数据发送和接收方的定义。每个总线传输周期中,数据发送端和接收端的身份根据地址寻址关系自动切换,而避免了总线控制权更迭时的握手,及数据传输优先级或传输抢占等问题,总线控制信号来自同一个时钟域,从节点仅响应控制信号,可忽略节点间时钟相位差影响。在每个伺服周期,设计了一个数据传输序列来实现共享数据交互。数据传输序列由若干个总线传输周期构成,每个周期完成32bit的数据共享。通过设定总线地址来设置数据传输序列的传输内容,当所有的设定总线地址被遍历,则当前周期数据传输已经完成,所有被规划传输的数据都被所有的运动控制卡所共享。

VME自定义总线是一条并行运行的总线,该总线釆用数据广播的方式,可以方便各个板块同时接收同一个数据。其由同步控制卡提供5KHz时钟,每200us同步控制卡将数据锁存线拉高,向光栅译码卡发出一个脉冲,此时光栅译码卡和激光干涉仪等设备锁存该时刻的数据,其读数不再发生变化,然后同步控制卡产生一连串的.读取信号,将各个光栅尺的数据读出。同时切换总线上的地址,并生成釆样保持,读取和地址三个信号置于自定义总线,运动控制卡通过对自身所需的地址的识别在读信号低电平时获得相应位置传感器的信号。

VME自定义总线在VME的P2口上,时钟频率是5KHz,用于传输激光干涉仪和光栅尺的测量数据。在实际应用中,位置环釆样周期为200us,并且有大量的实时伺服数据在运动控制卡与光栅译码卡之间、运动控制卡与运动控制卡之间、运动控制卡与同步总线控制卡之间交换。如果在运动控制中,这些伺服数据使用VME总线进行交换,则会堵塞系统总线,使PowerPC无法进行正常工作。为此,利用光栅译码卡的技术特点以及VME的P2自定义接口,构造自定义局部总线。并设计专用同步总线控制模块对同步总线进行控制。自定义同步总线接口逻辑同样釆用FPGA芯片来实现,使其达到灵活、可靠、集成度高的设计要求。

自定义同步总线的主控制器由运动控制系统中的同步总线控制卡来实现,而运动控制卡中只需实现自定义总线的从接口。从控制器结构如图1所示,其功能包含以下方面:

提供DSP对于双口RAM访问的地址译码,将DSP的标准EMIF接口时序转换成双口RAM访问时序,该功能在EMIF时序匹配模块中完成;

完成自定义总线的读写逻辑,当自定义总线的地址有效后,数据方向控制模块将判断当前运动控制卡是数据发送端还是数据接收方,以切换数据总线方向;

当某一个特定的自定义总线地址访问出现的时候,总线时序匹配模块将产生中断信号提供给DSP,提供同步触发步控制卡VME自定义总线逻辑功能的实现

光栅译码卡接收来自光栅尺的信号,实现对工件台宏动部分的位置测量,测量数据通过自定义总线传送给同步控制卡。同步控制卡通过内部的定时器,产生运动周期开始信号,读取光栅译码卡的数据,然后将各个运动控制卡所需的信号,按照一定的地址编码,发送到VME64X总线的自定义总线上,由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后,依次接收指令位置和光栅尺数据,运动控制卡进行数据存储等其他操作,并等待下个运动周期的开始信号。

对于同步控制卡FPGA中逻辑协议的设计,釆用三段式状态机进行设计,第一段描述次态寄存器转到现态寄存器;第二段对状态转移条件进行判断,从而完成状态转移变换;第三段描述在各个状态完成的动作和对状态转移条件进行描述。

每200us向光栅译码卡发出一个脉冲,光栅译码卡接收到该脉冲后就会锁存当前数据,当脉冲到来时则转到S1状态,否则仍然处于S0。在S1状态时等待20ns,即让光栅译码卡把数据锁存完成,接着转到状态S2。在状态S2,将地址发送给光栅译码卡,并且等待30ns,让输出数据稳定,然后转到状态S3。在状态S3,将数据锁存,读操作的次数置零,并且将地址发送给双口RAM,延时10ns等待数据和地址稳定,然后转到状态S4。在S4对双口RAM进行写操作使能,即给写使能引脚置高电平,然后进入状态S5。在S5将读操作次数加1,并判断是12路数据是否读取完毕,即读次数是否等于12,若否则进入状态S6,否则进入状态S11。从状态S6到状态S10重复状态S1到S5的过程,直到读取完成。在状态S11,发出读取完成脉冲,并延时20ns到状态S12,最后返回状态S0等待。同步控制卡VME自定义总线设计实测结果,实测模块是接收12路光栅尺的数据,从图3可以看出,送到光栅译码卡的地址,在延迟一定时间后,稳定的数据才输出,所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。

将数据写人缓存必须等待数据稳定才能发出写信号。运动控制卡读取VME自定义总线数据逻辑功能的实现,在光刻机双工件台控制系统中,每块运动控制卡实现,同步控制卡VME自定义总线设计实测结果。

实测模块是接收12路光栅尺的数据,从图3可以看出,送到光栅译码卡的地址,在延迟一定时间后,稳定的数据才输出,所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。

将数据写人缓存必须等待数据稳定才能发出写信号。运动控制卡读取VME自定义总线数据逻辑功能的实现,在光刻机双工件台控制系统中,每块运动控制卡实现对三个电机的控制,整个系统需要12块运动控制卡,它通过光纤口将控制信号传送到电机驱动。同步控制卡通过内部的定时器,产生运动周期信号,读取光栅译码卡中数据,进行解耦,然后将各个运动控制卡所需的信号,按照一定的地址编码,发送到VME64x自定义总线,由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后,依次接收指令位置和光栅译码卡的数据。

本文提供了一种基于FPGA的VME自定义总线的逻辑接口设计,同步控制卡作为“主卡”,读取光栅译码卡中的测量数据,并将数据置于VME自定义总线上,其负责自定义在总线的逻辑设计。运动控制卡,接收来自自定义总线上的数据,并通过DSP进行处理,最后发送给电机,控制电机的运动轨迹。该设计方案通过了实际验证,并利用Signal Tap观测了其逻辑时序,可得该方案正确。

❈ 自定义造价工作总结

课堂中,多次“规律性总结”,处处体现了细节,具体体现在总结了PPT自定义动画的三种呈现方式——单击、之前、之后,四个动画类型——进入、退出、强调、动作路径,贵在引导学生将规律性总结运用到制作中。正如怎样还原“兔子撞树”的`真实性场景。引导学生善于思考,力求真实。

末了,总结了12字的制作心得:都有谁?谁要动?谁先动?如何动?以及动画不在多,贵在需要,设计更重要的理念传达给学生,通俗易懂,得到深化。

导入环节,戴老师带来的“礼物”很特别,通过精美的PPT动画来展示环保理念,人类与自然的和谐共处,这很有教育意义,抓住学生的心,产生浓厚兴趣,体验信息技术的同时又获得一种精神之旅。

巧妙地用PPT“讲寓言故事”贯穿本堂课,老师提供剧本,素材是演员,学生是导演,师生与作品联系在一起,拉近了师生之间的交流的距离。

评价详细具体,有针对性,强调多种方法实现动画效果,拓展学生知识面,指出制作动画要遵循科学,忠于实践的思想。

整体上老师讲解细致入微,学生操作得心应手,不足之处应该注重课堂中师生间的交流。

❈ 自定义造价工作总结

岁月涟漪,平凡无奇,夕阳红,想我往时的旧梦。

窗明几净,室内安静,我不懂,人生定义到底是什么。

屋外细雨点滴,落叶随风各入地,最后却消失在天晴。

生活云淡风轻,看不穿涓涓红尘,只能将心事弹给你来听。

名利争斗,惟情是重,月夜浓,一生情装满我心中。

春去秋来,人生几重,岁月流,梦想终将都成空。

风吹过阳台边,夕阳下你更轻柔,最后背影渐消退。

看尽人生百态,领悟到人间冷暖,才明白人生需自己掌控;人生不需无奈,只要活得更精彩,用自定义来灌溉。

❈ 自定义造价工作总结

Win7系统的开始菜单中会显示我们最近使用过的程序或项目的快捷方式,如果想对Win7的开始菜单做一些个性设置,应该怎么办呢?

最近学到一个小技巧,可以轻松自定义Win7系统的开始菜单,在这里和大家一起分享,

Win7开始菜单显示最近使用过的程序或项目,可以从右键菜单中选择“从列表中删除”

操作步骤很简单,先用鼠标右键点击Win7的圆形“开始”按钮,然后选择“属性”,打开“自定义开始菜单”的设置面板。

在“开始菜单”页卡中的“隐私”设置里,我们可以选择是否储存最近打开过的程序和项目,这两个功能默认为勾选,所以我们一般都可以从Win7开始菜单中看到最近使用过的程序和项目。如果有些朋友不想显示这些,可以在这里取消相关的勾选设置。如果不想显示个别的程序和项目,我们也可以直接从右键菜单中选择“从列表中删除”。

点击“开始菜单”页卡中的“自定义”按钮,我们可以对Win7开始菜单做进一步的个性化设置。比如显示什么,不显示什么,显示的方式和数目等等。如果想恢复初始设置,这里还提供了“使用默认设置”按钮,可以一键还原所有原始设置。

比如我们在“自定义开始菜单”中勾选“运行命令”和“最近使用过多项目”(下左图),确定后在“任务栏和开始菜单属性”的“开始菜单”页卡中奖电源按钮操作设置为“睡眠”,取消勾选“存储并显示最近在开始菜单中打开的程序”(下右图),最后点击确定,

经过上面的设置,我们再次点击Win7系统的圆形开始按钮,开始菜单中原来那些最近使用的程序和项目不见了,只剩下之前锁定设置的Excel,同时右边的菜单中多出了“最近使用的项目”、“运行”,电源按钮的初始选项变为“睡眠”。

了解了上面的设置方法,我们就可以对Win7系统的开始菜单做更多自由的个性化设置,更适合自己的使用习惯。

短短两年时间,Win7系统凭借酷炫的界面以及简单、易用、快速、安全等特点,迅速成为全球最受用户喜爱的操作系统,身边很多同学朋友都开始使用Win7系统,Win7已经成为大家生活学习工作的好伙伴。

有升级电脑想法的朋友,不妨选择预装Win7系统的电脑,价格比单独购买同样配置的电脑和盒装Win7系统便宜得多。选择适合自己的预装Win7版本的笔记本,既可以用上高级配置的新电脑,又可以体验简单、易用、快速、安全又酷炫的Win7系统,真的是省钱明智之举。

❈ 自定义造价工作总结

3、单击菜单中的“其它命令(M)...”,进入“Word选项”窗口,如图4所示。

窗口左侧列表框为系统的'命令菜单,右侧列表框为已经添加到“快速访问工具栏”中的命令。

选择左侧的某些功能,点击中间的【添加】按钮,即将该功能预添加到“快速访问工具栏”中,一次可以添加多项功能。

注意:单击窗口底部的【确定】按钮,保存结果。

图4 Word选项

4、选择添加的命令时,注意选择从什么位置添加命令功能。

默认情况是从“常用命令”位置进行添加,也可以选择“全部命令”位置进行添加,还可以选择从“文件选项卡”或者其它的选项卡中查看并添加命令。

添加命令的方式同上一步。

5、删除和排序“自定义快速访问工具栏”命令按钮。

如图5所示,选择右侧列表框的某一命令,单击中间的【删除】按钮,即可将该命令删除;单击右侧的上下箭头即可对命令按钮进行排序。

删除或者排序操作完成后,需要单击【确定】按钮,保存操作结果。

图5 删除和排序“自定义快速访问工具栏”命令按钮

❈ 自定义造价工作总结

摘要:介绍了利用SPI口实现CAN总线隔离扩展的一种通信控制系统,详细叙述了此通信控制系统中主从通信模块的硬件设计控制,软件设计流程及实现方法。

CAN总线是一种有效支持分布式控制和实时控制的串行数据通信协议,它是一种多主总线,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从,节点之间有优先级之分,因而通信方式灵活;CAN可以点对点、一点对多点(成组)及全局广播等几种方式传送和接收数据 ;CAN采用非破坏性位仲裁技术,优先级发送,可以大大节省总线冲突仲裁时间,在重负荷下表现出良好的性能。

CAN上的节点数实际可达110个,通信介质可以是双绞线、同轴电缆或光导纤维,直接通信距离最远可达10km(传输速率为5kbps);最高通信速率可达1Mbps(传输距离为40m)。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码,CAN数据链路层采用短帧结构,每一帧为8个字节,易于纠错。可满足通常工业领域中控制命令,工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。

CAN总线具有较强的纠错能力,每帧信息都有CRC校验及其它检错措施,有效地降低了数据的错误率。CAN节点在错误严重的情况下,具有自动关闭的功能,使总线上其它节点不受影响。支持差分收发,因而适合高干扰环境。

我们设计的一种CAN总线主从通信控制系统如图1所示,该控制系统采用内外两层隔离控制形式,主控台向主CAN网络发送指令和数据,通过主从通信模块与从CAN网络中的节点通信,对分系统控制单位进行数据采集和控制。此系统使CAN总线的节点数增加了n倍;CAN总线的传输速率和通信距离大幅度的提高;抗干扰能力也大幅度的增强。

本文讨论的是CAN总线主从通信控制系统中主从通信模块的硬件、软件设计及实现方法。主从通信模块实现了主控台和从控制单元之间CAN网络数据通信的隔离扩展,对通信数据处理、传输和CAN网络控制有一定的借鉴作用。

主从通信模块控制原理框图如图2所示,核心芯片是TI公司TMS320C系列的适合于数字控制的一种DSP。它的单个芯片内包含了10位ADC转换器、片内flash程序存储器、事件管理器、数字输入输出I/O口等。为了便于与各种外围设备进行通信,DSP还提供了一些接口:CAN接口、串行外设接口(SPI)、串行通信接口(SCI)等。其中,SPI接口是工业标准的同步串行接口,是一种全双工、三线通信的系统。它允许DSP与各种外围设备以串行方式(可配置成1~16位数据同时、同步地被发送和接收)进行通信。在SPI接口中,数据的传输需要1个时钟信号和两条数据线。SPI可工作在主模式或从模式下。在主模式下,每一位数据的发送/接收需要1次时钟作用;而在从模式下,每一位数据都是在接收到时钟信号之后才发送/接收。

如图2通信控制部分原理图,两片DSP芯片的SPI使用4条线直接接口:串行时钟线(SPICLK)、主片输入/从片输出数据线SPISOMI、主片输出/从片输入数据线SPISIMO和低电平有效的从片选择线SPISTE。

SPICLK是主片的时钟线,为MISO数据的发送和接收提供同步时钟信号。每一位数据的传输都需要1次时钟作用,因而发送或接收1个字节的`数据需要1~16个时钟的作用。主片的时钟是通过主片的硬件设置的,并和从片的SPICLK相连。

MISO是主片的输入/从片的输出数据线。主片的MISO应与从片的MISO相连进行高位在前的数据交换。MOSI是SPI接口的SPI主片输出/从片输入数据脚。这一引脚应当连接主片的数据输出和从片的数据输入端MOSI,进行高位在前数据的交换。

SPISTE只在从方式中用于低电平选中从片,对应的主片SPISTE脚被配置为I/O口作为从片的SPI片选输入脚。

发送和接收可以同时工作在主模式下。主模式的显著特征是不论是发送还是接收始终有SPICLK信号,发送操作是由向SPIDAT(或SPITXBUF)中写数据而触发的。在主模式下,时钟信号的1次作用对应一位数据的发送(M0SI)和另一位数据的接收(MISO)。如图3所示,在主片中数据从移位寄存器中自左向右发出送到从片(MOSI),同时从片中的数据自右向左发到主片(MISO),经过16位时钟周期完成1个字节的发送。输入字节保留在移位寄存器中,此时SPI INT FLAG位自动置位(如果有中断设置,则产生中断),移位寄存器的数据将被锁存到SPIRXBUF中,此后对SPIRXBUF的读操作将把数据读出。

发送和接收同时工作在从模式下。从模式的显著特征是:不论是发送还是接收始终必须在SPICLK信号作用下进行,并且SPISTE信号必须有效。当SPISTE信号无效时,数据的发送无法进行并且输入的数据视为无效。这是因为输入的时钟信号是与SPICLK的逻辑与操作,而SPICLK信号是SPISTE的反转。这样当SPISTE为高时,就没有时钟信号输入。数据的发送和接收的过程见图3所示,与主模式下基本相似,只是移位寄存器的数据移出和输入方向与之相反。

SPI通信以一帧CAN报文5个字节为一个传送单元进行信息交换。主片控制着SPICLK信号可在任一时刻启动报文传送;从片在传送报文之前,通过口线向主片发送一个外部中断请求,请求成功后主片输出SPICLK信号来启动从片的报文传送。从片在SPI中断中接收主片传送来的报文;主片在外部中断中完成从片报文的接收。当主片和从片同时都有报文传送时,系统优先传送主片报文,然后再传送从片报文。

主片发送报文,从片接收报文软件流程图如图4所示。主片在向从片传送报文前禁止外部中断,也就是禁止从片发送报文。然后从CAN传送缓冲区取一帧报文放入SPI发送暂存器中,再从SPI发送暂存器中取一个字节的数据写到SPITXBUF寄存器中启动SPISIMO引脚上的数据发送,同时,从片响应一个SPI中断开始接收主片发送来的数据,当从片接收到一个字节后,通过口线触发主片的XINT1外部中断来告知主片数据已接收,主片响应了此XINT1外部中断后,再发送下一个字节的数据,当一帧报文传送完成后,主片将外部中断使能,以便接收报文。从片接收完报文后,置报文接收完成标志,以便CPU进行报文的处理。

从片发送报文,主片接收报文软件流程图如图5所示。从片在发送报文前,通过口线向主片发送一个XINT1外部中断,请求报文的发送,当主片响应了此中断时,发送一个伪数据(如#0FFFFh)来告知从片可以开始报文的发送,从片测试到报文请求受理标志置位后,再从CAN传送缓冲区取一帧报文放入SPI发送暂存器中,再从SPI发送暂存器中取一个字节的数据写到SPITXBUF寄存器中,通过口线向主片发送XINT1外部中断,请求主片取数据,主片在XINT1中断服务程序中监测到中断标志置位时,发送伪数据#0FFFFh(启动从片数据发送的SPICLK时钟),然后将收到的字节存入SPI接收缓冲区,从片依次将一帧报文传送完成后,清报文受理标志。主片完成一帧报文接收后,置报文接收完成标志,并退出外部中断,以便CPU进行报文的处理。

CAN总线上信息的传送都是没有规律随机的,所以用SPI口实现主从系统间信息的传递时,必须考虑当有数据正在从DSP1向DSP2传送时,应该禁止数据从DSP2向DSP1传送,反之也然。否则数据在互传过程中就会出错或丢失,影响CPU的正常工作。为了避免主从报文在发送过程中产生冲突,主片在XINT1中断服务程序中完成一帧报文的接收,从片在SPI中断服务程序中完成报文的接收。在进行报文传送时,不管是主片还是从片只有当一帧报文传送完成后,才能进行下一帧报文的传送。主、从片每发送完一个字节的数据,都有一个应答信号返回标志位(见标志位意义)的判断,以便确认数据是否完整的发送或接收。

由于主片掌握着报文传送的时钟信号,即主动权,所以主片随时都可以进行报文的传送。从片在报文传送前,首先要确认主片此时是否传送空闲,若此时主片正在传送报文,从片等待主片将报文传送完成,再进行报文的传送;若主片正处于传送空闲状态,从片可以开始传送报文。

此CAN总线主从通信控制系统外加一些辅助控制单元(如显控单元,操作键盘等)后可作为从CAN网络的主控制器使用,在主控台CAN网络发生异常不能正常工作时,能够辅助控制分系统的运行,此项设计已经在控制系统中得到了应用。

❈ 自定义造价工作总结

1、你突然点醒了我,我们的相识能够以年计算了,你找到你爱的,而我,还在原地徘徊着。

2、如果我从没遇见你,如果我从没爱上你,如果我一开始没坚信,也许我就不会是现在的这个自己。

3、你变了,我也变了,回不去的温柔,泪水如泉涌,最熟悉的变得最令我心痛。

4、情断了,绑不住,试着放手,走与不走,留与不留,我不想懂。

5、明知你心里没有我,也永远做不到你想要得那个,却不由自主让你看到最真实的我,掩藏住受伤的我。

6、当一切都回不去了,当我决定要走,你才明白冷落了我,我要的不多,可你都没给够,哪怕一个温柔的相拥,对我来讲,都是幸福的。

7、如果爱不曾来过,如果梦不曾碎过,如果心不曾疼过,那么我,是否还是你认识的我?

8、别害怕,我一直站在你的身后,总在你呼唤时守在你左右。

9、不要走,请逗留,不要再让我心痛,难道你认为伤我还不够?

10、不要再折磨我,我的心已被割破,流尽的不是血,是爱你的错。

11、诺言不过上一种谎言,那是种美丽的欺骗,可就是有人愿意为了它放弃一切、

12、你就像我口中的牛奶,我渴了,饿了,困了,累了,你却帮不了我什么,只上一暂时滋润了。

13、野猫的女人很任性,他们倔强不失可爱,野蛮不失温柔,他们认定的东西,就算不要、也不能让别人拥有,她们是贪心的,因为她们害怕寂寞。

14、擦肩而过,你我,并不是属于彼此的,无所谓的珍重与再见,无所谓的感受与苦涩已化作尘埃飘过,我们该珍惜现在。

15、窗外雨在下,一颗挨着一颗,我的泪水也蓬勃了,如窗外那断了线的雨珠。

16、当温柔不在,当泪水擦干,我现在的挽留还算不算?只愿不会成遗憾。

17、喜欢就喜欢了,心被牵动,无须理由,爱上你是我的自由,请打开窗口,让我的灵魂与你的灵魂相拥。

18、说过不会比你先走,说过就算走也决不回头,说过不再用手试泪,说过就算你走也不在原地逗留,说过的不在也再,说过的一切已不算,你的臂弯已不再是我心灵的港湾,而那些承诺不过是无稽之谈。

19、想爱不能爱才最寂寞,我试着勇敢一点,可我无法面对镜中颤抖的双眼,所以只能跟靠近我的每个人说再见。

20、走,还是要走的的,留下来的不过是一副躯壳,留,还是要留的,我的心就在此生根了。

21、孤独的双眼沉默着,何时才被明亮发现,躲在黑暗角落的我

22、你的寂寞让我留恋,不小心回头看了你一眼,只有孤单的人会寂寞。

23、淡了,散了,不多,一点就够了,睡了,呼呼中,懂了?是的。

24、梦已逝,心已碎,留下只是在为离开做准备。

25、如果不要我,请离开我,留下,只是继续令我难过。

26、如果我能够继续等待,如果时间能够停留下来,如果……没有如果?

27、断了联络,断了思念,最后的希望已灰飞湮灭,心已疲倦,痛吗?不懂。

28、擦去脸上的泪水,却带不走心中痛楚的感觉。

29、爱就爱了,接受拒绝?简单的几个字却变了味,你无言的回应,我逃避的闪躲,为何?(经典语句 )正面回答不会比现在更伤害我。不要坚信,他没回应总好过答应了无法承诺,那样心更炙热,他给不起,你还要吗?

30、愁绪吗?有点闷,一点孤独品尝一点寂寞。

31、天空开始放晴,微风划过,如此轻柔,想每次你偷亲我的脸颊一样,我笑了,仅仅是因为想起了你。

32、有点落寞,我不懂该怎么说,让它在无声中逝去,我走了,其实它没有来过,只是夜晚心异常柔软。

33、当我流着泪向你说再见,你只是冷漠的向我告别,不感看你的'冷漠的眼,心已碎成千片。

34、我难道的时候你在哪里?心痛的感觉令我麻痹,痛得我难以呼吸,却不敢告诉你。

35、你的心已不属于我,可我却还期待你的回应,明知不可以,却还是被牵引。

36、爱来过,也走过,痴过也恨过,伤过才会懂,一切皆是错。

37、电话那头,又是沉默,该放手,却难割舍。

38、每到夜深人静,我才倍感寂寞倍感心酸,孤单的人心易碎,总是看到别人双双对对,才感觉,一个人好孤单,只是真心已不在,真心已不算。

39、当依靠的肩膀不在,当我的眼泪流干,当我决定放手,我的心已不在。

40、我难过的时候你在哪里?一句抱歉就能把空白代替?

40、没有人不渴望得到一份完美的爱情,没有人不希望自己的爱情美丽如童话。

41、我一直以为爱情是两只蝴蝶,最后才发现那不过是苍蝇或者别的什么昆虫。

42、我喜欢这样的生活,波澜不惊、小桥流水,有家常夫妻的温暖。如果从前我的爱情是一道爱情火锅,麻辣香鲜,非常刺激非常浓烈,那么现在,我的生活就是一道白菜豆腐,可以日日吃,不会吃坏我的胃。

43、这就是爱情吧,它可以让一个人变得无比纯洁,也可以让一个人堕落成魔鬼。

44、爱情是一件华美的衣服,华而不实;爱情也可以是一件纯棉的背心,穿上之后让你暖心暖肺。

45、那是一种孤独的眼神,因为找不到这世界温暖的出口而孤单。

46、从看到你的眼神,就知道你是我的毒药,我的毒药,我的解药,那都是你。

47、只要相爱过,只要曾经彼此刻骨铭心地痛过,那个人的生死不是与你没有关系而是与你息息相关,曾经,你以为他死了你才高兴,可是,当他真的要离你而去时,你才发现,不,你不是这么想的,你希望他健康的活着,哪怕他辜负了你,哪怕他不再爱你,你还是希望他好好或者,到八十岁,子孙满堂。

48、我的眼泪,他的眼泪,融合在一起,那么咸那么苦,曾经,我们以为我们很懂得爱情,却原来,爱情是我们永远要探寻的一条远方的路,我们以为可以牵着手走一生,却在半路上丢失了自己。

49、如果真有下辈子,我还叫顾卫北,你记性不好,我怕你找不到,我一定还到那棵花树下去找你,请你也不要改名字,还要叫林小白,即使下一辈子你不能转世为人,你是条小狗,我会领你回家,你是一盆小花,我会小心养大,这一辈子欠你的,我下辈子一定还!

50、当你爱一个人时,你才发现,他是你心里地刺青,永远深深地印在你的心里。

51、人生自是有情痴,此恨不关风与月,能对一个人痴上一次,那是你或他的福分。

52、爱情是咖啡,越吃越贪婪,而戒了爱,无异于饮鸠止渴。

53、爱情只要花开的模样,好看也好,坏看也罢,只要是这朵玫瑰花,他和她,都应该让花儿努力地开。因为一生一世的花开,如果只为一个人,那对于爱情来说,是一件美好而幸福的事情啊!

54、有的时候,爱到痛处,不是死去活来,不是天崩地裂,不是山盟海誓,而是无言的关怀和祝福。

55、爱,有时候就这么简单、朴素。它像一杯在我们身边的白开水,伸手可及,渴了,让人觉得凉爽舒服。

56、爱是一个慢慢等待的过程,就像茶苦茶香。

57、爱情就是一种以毒攻毒的事。

58、如果真爱一个人,就不会让她等待,而是分分秒秒都想和她在一起。如果爱她,让他多等一秒都是心疼;如果不爱才会让她望穿秋水。爱情是和时间紧密相连的。

60、爱一个人,不一定要得到,有时,付出也是一种快乐。有些爱情,只简单到有一个拥抱。有些爱,是风飞过高山,是燕飞过屋檐,只要心里有过,就足够了。

61、他的爱情也像这冬天的树叶,正在一片片的落下来,最后埋藏在地下,成为一颗玲珑的心。

62、一个男孩儿问一个女孩儿:"你爱我吗?"那个女孩儿说:"我不爱你,我会费尽心力的为你织成唯一的一件毛衣吗?"男孩儿说:"我也爱你。"女孩儿问:"你怎么证明你爱我?"男孩儿说:"如果有一碗粥,我会让给你喝。"

63、爱情真的很苦,有时就像一朵莲花,有它的清香,也有它的苦涩。

64、缘份尽了,感情再深也是陌路,也不过是三分钟吧。爱情已是旧山河,以后的画卷中再不会画他。

65、对待爱情的态度,应是一个灵魂对另一个灵魂的态度,而不是一时心血来潮。

66、有的男人有一种味道,特别的,让人心痛的,也让人快乐的,容易让女人爱上的,无论他是怎样的男人。

文章来源:http://www.zcd17.com/z/152383.html

自定义造价工作总结相关文章