对于Transphorm推出第四代GaN平台及SuperGaN™功率FET感兴趣的读者,本文将会是一篇不错的选择,并为您提供关于android–Cordova/Phonegap:在后台线程中运行Fil
对于Transphorm推出第四代GaN平台及SuperGaN™功率FET感兴趣的读者,本文将会是一篇不错的选择,并为您提供关于android – Cordova / Phonegap:在后台线程中运行FileTransfer插件、CGAffineTransformMakeTranslation和CGAffineTransform、CGAffineTransform详解、com.vaadin.ui.DragAndDropWrapper.WrapperTransferable的实例源码的有用信息。
本文目录一览:- Transphorm推出第四代GaN平台及SuperGaN™功率FET
- android – Cordova / Phonegap:在后台线程中运行FileTransfer插件
- CGAffineTransformMakeTranslation和CGAffineTransform
- CGAffineTransform详解
- com.vaadin.ui.DragAndDropWrapper.WrapperTransferable的实例源码
Transphorm推出第四代GaN平台及SuperGaN™功率FET
戈利塔,加利福尼亚州--(美国商业资讯)--设计和制造高可靠性、并率先获得JEDEC和AEC-Q101认证的高压氮化镓(GaN)功率半导体器件的领先公司Transphorm,Inc.今天宣布推出其第四代GaN平台。与前几代GaN技术相比,Transphorm的新一代技术在性能、可设计性和成本方面都有显着进步。Transphorm今日还宣布,其第四代及以后的平台都将相应地被称为SuperGaNTM技术。
Transphorm公司SuperGaN系列的第一款通过JEDEC认证的器件是TP65H300G4LSG。这是一颗650V GaN FET,采用PQFN88封装,导通电阻为240毫欧。第二款SuperGaN器件是TP65H035G4WS,同样为650V GaN FET,采用TO-247封装,导通电阻为35毫欧。这些器件目前正处于提供样品阶段,并将分别在第二季度和第三季度发布。它们的目标应用包括适配器、服务器、电信、广泛的工业和可再生能源。系统设计人员可以在Transphorm的4kW无桥式图腾柱AC-DC评估板TDTTP4000W066C-KIT中评估这项技术。
SuperGaNTM技术与众不同之处
在设计第四代产品时,Transphorm的工程团队借鉴了先前产品生产记录的经验,并不断追求提高性能、可制造性和降低成本,从而设计出归于至简又具备实质性改进的新产品。 新平台专利技术的优势在于增强了Transphorm GaN固有的高性能,简化了组装和应用,这将是促成SuperGaNTM品牌成功的催化剂。
在其专利技术的推动下,SuperGaN Gen IV的优势包括:
- 提升了性能:第四代产品的效率曲线更平坦、取值更高,其FOM优异度(RON * QOSS)提高了大约10个百分点。
- 设计更简单:高工作电流下不再需要使用开关节点缓冲电路,简化了第四代产品在设计中的应用。
- 增强了抗浪涌电流的能力:消除了半桥中内置续流二极管功能对开关电流的限制。
- 降低了器件成本:第四代产品的设计创新和专利技术同样简化了器件的封装,从而降低了成本,使TransphormGaN的价格更接近于硅晶体管。
- 经过验证的稳定性/可靠性:第四代35毫欧FET的栅极稳定性和抗扰度与Transphorm第三代器件相同,均为+/- 20 Vmax和4 V。
Transphorm全球技术营销和北美销售副总裁Philip Zuk表示:“我们希望Transphorm的SuperGaNTM FET像硅基超结MOSFET的发展一样,继续影响下一代电力电子产品。通过提供更出色的性能,并提高用户的整体投资回报率,我们的第四代GaN平台正在其它功率等级上创造新的设计机会。我们能够在不牺牲可靠性的情况下减少损耗,并将初始设备投资降低到接近用户之前使用硅基产品时的水平,这表明,GaN在市场上的地位正在强化。”
Transphorm公司致力于设计、制造和销售用于高压电源转换应用的高性能、高可靠性的氮化镓[GaN]半导体功率器件。Transphorm持有数量极为庞大的知识产权组合,在全球已获准和等待审批的专利超过1,000多项 ,是业界率先生产经JEDEC和AEC-Q101认证的GaN FET的IDM企业之一。得益于垂直整合的业务模式,Transphorm公司能够在产品和技术开发的每一个阶段进行创新——包括设计、制造、器件和应用支持。
SuperGaN是Transphorm, Inc.的注册商标。所有其他商标均为其各自所有者的财产。
- 点赞
- 收藏
- 分享
-
- 文章举报

android – Cordova / Phonegap:在后台线程中运行FileTransfer插件
关于这个话题有什么新闻吗?
我正在使用Cordova 3.4.0和FileTransfer插件,当我下载文件时,UI开始滞后特别是在iOS设备上,其中加载gif一直被冻结
是否可以顺利下载文件的替代插件?
解决方法
0.4.3 (Apr 17,2014)
… CB-5175: [ios] CDVFileTransfer asynchronous download (Fixes #24)
…
不幸的是,这个版本通过不调用成功或失败的回调来完全打破文件传输下载.有关安装最后一个有效的构建的说明,请参阅https://issues.apache.org/jira/browse/CB-6720?focusedCommentId=14008776&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14008776.
我手动修补CDVFileTransfer.m以包含最新版本的后台线程代码.在下载方法中,您需要替换
[delegate.connection start];
同
// Downloads can take time // sending this to a new thread calling the download_async method dispatch_async( dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAULT,(unsigned long)NULL),^(void) { [delegate.connection start];}
到目前为止,这对我来说是可靠的,但显然你是在科尔多瓦发布正式修复之前自己做的.
CGAffineTransformMakeTranslation和CGAffineTransform
1.CGAffineTransformMakeTranslation每次都是以最初位置的中心点为起始参照
CGAffineTransformTranslate每次都是以传入的transform为起始参照
CGAffineTransformIdentity为最初状态,即最初位置的中心点
2.3个按钮,bt1,bt2,bt3,bt1和bt2控制bt3的移动
- (IBAction)bt1clicked:(id)sender {
self.bt3.transform = CGAffineTransformMakeTranslation(10, 0);
}
- (IBAction)bt2clicked:(id)sender {
//self.bt3.transform = CGAffineTransformTranslate(CGAffineTransformIdentity, 10, 0);
self.bt3.transform = CGAffineTransformTranslate(self.bt3.transform, 10, 0);
}
点击bt1,第一次移动10个像素,以后都是以最初位置的中心点为起始参照,所以后续bt1无论点击多少次,按钮都在初始位置偏移10个像素的位置不动
点击bt1一次,再点击bt2一次,偏移20像素,点击bt2时,上一次按钮点击的偏移作为这次的参照
只点击bt2一次,偏移10个像素
不断点击bt2,bt3不断偏移10个像素
bt2clicked的第一句不注释:
第一次点击bt2,bt3偏移20,后续再点击,永远再第一次点击后的位置,再点击bt1,回到初始偏移10的位置(往回走了10)
点击bt1,偏移10,再点击bt2,在bt1点击基础上再偏移10,后续再点击不动( CGAffineTransformTranslate(CGAffineTransformIdentity, 10, 0);每次都是从最初位置开始偏移)
CGAffineTransform详解
struct CGAffineTransform {
CGFloat a, b, c, d;
CGFloat tx, ty;
};
CGAffineTransform其实就是一个矩阵
深层次的理解需要一定程度的高等数学、线性代数等知识,自己还在理解中...
原理是我在网上找到的,挫人都能看懂一些,想必大家一定也能看懂,具体内容如下:
为了把二维图形的变化统一在一个坐标系里,引入了齐次坐标概念,即把一个图形用一个三维矩阵表示,其中第三列总是(0,0,1),用来作为坐标系的标准。所以图形的变化都是由前两列完成。
以上参数在矩阵中的表示为:
| a b 0 |
| c d 0 |
| tx ty 1 |
运算原理:原坐标设为(X,Y,1)
| a b 0 |
[X,Y,1] | c d 0 | = [aX + cY + tx bX + dY + ty 1] ;
| tx ty 1 |
通过矩阵运算后坐标 [aX + cY + tx bX + dY + ty 1] ,
我们做如下假设:
第一种情况(移动):设定 a = b = 1,b = c = 0.
[aX + cY + tx bX + dY + ty 1] = [X + tx Y + ty 1];
可见这时候,坐标是按照向量(tx,ty)进行平移,这就是苹果官方提供的函数CGAffineMakeTranslation(CGFloat tx,CGFloat ty)的计算原理。
第二种情况(缩放):设定 b = c = tx = ty = 0.
[aX + cY + tx bX + dY + ty 1] = [aX dY 1];
可见这时候,坐标X按照a进行缩放,Y按照d进行缩放。a,d就是X,Y的缩放比例系数这就是苹果官方提供的函数CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)的计算原理。a对应sx,d对应sy。
第三种情况(旋转):设定 tx = ty = 0,a = cosθ ,b = sinθ,c = -sinθ , d = cosθ
[aX + cY + tx bX + dY + ty 1] = [Xcosθ - Ysinθ Xsinθ + Ycosθ 1];
可见这时候,θ就是旋转的角度,逆时针为正,顺时针为负。其实这就是苹果官方提供的函数CGAffineTransformMakeRotation(CGFloat angle)的计算原理。angle 是θ的弧度表示。
下面来说下参数和所有函数代表的含义:
1.如果让参数 c,d为0
a表示x水平方向缩放, tx表示x水平方向偏移
d表示y垂垂直方向缩放, ty表示y垂直方向偏移
2.如果让参数 c,d不为0, 视图是会旋转
CGAffineTransformIdentity 重置为控件最原始的位置
CGAffineTransformMake 可以缩放、移动、旋转操作,参数含义上面已经介绍。
CGAffineTransformMakeTranslation 可以做平移操作,参数含义上面已经介绍。
CGAffineTransformMakeScale 可以做缩放操作,参数含义上面已经介绍。
CGAffineTransformMakeRotation 可以做旋转操作,参数含义上面已经介绍。
CGAffineTransformIsIdentity 判断控件的原始位置是否改变
CGAffineTransformTranslate 每次都是以传入的CGAffineTransform参数作为起点,做tx水平方向和ty垂直方向移动
CGAffineTransformScale 每次都是以传入的CGAffineTransform参数作为起点,根据参数sx 和 sy 进行缩放(x,y分别代表水平方向和垂直方向)
CGAffineTransformRotate 每次都是以传入的CGAffineTransform参数作为起点,根据参数angle(角度)进行旋转。
CGAffineTransformInvert 反转效果
CGAffineTransformConcat 合并两个交换
CGAffineTransformEqualToTransform 判断两个 交换是否一致
CGPointApplyAffineTransform 在结构体 CGPoint 一个点上做变换操作
CGSizeApplyAffineTransform 在结构体 CGSize 上做变换操作
CGRectApplyAffineTransform 在结构体 CGRect 上做变换操作
com.vaadin.ui.DragAndDropWrapper.WrapperTransferable的实例源码
@Override public void drop(DragAndDropEvent event) { WrapperTransferable transfrable = (WrapperTransferable) event.getTransferable(); WrapperTargetDetails details = (WrapperTargetDetails) event.getTargetDetails(); System.out.println("transfrable " + transfrable.getClass().getCanonicalName()); System.out.println("transfrable.getDraggedComponent() " + transfrable.getDraggedComponent().getClass().getCanonicalName()); if (transfrable.getDraggedComponent() instanceof Button) { // Calculate the drag coordinate difference int xChange = details.getMouseEvent().getClientX() - transfrable.getMouseDownEvent().getClientX(); int yChange = details.getMouseEvent().getClientY() - transfrable.getMouseDownEvent().getClientY(); // Move the component in the absolute layout AbsoluteLayout.ComponentPosition componentPosition = processModelLayout.getPosition(transfrable.getSourceComponent()); componentPosition.setLeftValue(componentPosition.getLeftValue() + xChange); componentPosition.setTopValue(componentPosition.getTopValue() + yChange); ElementModelLayout elementModelLayout = (ElementModelLayout) ((Button) transfrable.getDraggedComponent()).getParent(); TaskModel elementModel = elementModelLayout.getTaskModel(); elementModel.setX(componentPosition.getLeftValue()); elementModel.setY(componentPosition.getTopValue()); processModel.getTaskModels().put(elementModel.getId(),elementModel); transitionManager.setValue(processModel.getTaskModels(),processModel.getTransitionModels()); setTaskActive(elementModel); } }
@Override public void drop(final DragAndDropEvent event) { if (validate(event)) { final Html5File[] files = ((WrapperTransferable) event.getTransferable()).getFiles(); // selected software module at the time of file drop is // considered for upload artifactUploadState.getSelectedBaseSwModuleId().ifPresent(selectedSwId -> { // reset the flag hasDirectory = false; final SoftwareModule softwareModule = softwareModuleManagement.get(selectedSwId) .orElse(null); for (final Html5File file : files) { processFile(file,softwareModule); } if (artifactUploadState.getNumberOfFileUploadsExpected().get() > 0) { processBtn.setEnabled(false); } else { // If the upload is not started,it signifies all // dropped files as either duplicate or directory.so // display message accordingly displayCompositeMessage(); } }); } }
private boolean isFilesDropped(final DragAndDropEvent event) { if (event.getTransferable() instanceof WrapperTransferable) { final Html5File[] files = ((WrapperTransferable) event.getTransferable()).getFiles(); return files != null; } return false; }
关于Transphorm推出第四代GaN平台及SuperGaN™功率FET的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于android – Cordova / Phonegap:在后台线程中运行FileTransfer插件、CGAffineTransformMakeTranslation和CGAffineTransform、CGAffineTransform详解、com.vaadin.ui.DragAndDropWrapper.WrapperTransferable的实例源码的相关信息,请在本站寻找。
本文标签: