第一篇:Java_GUI程序设计规范编码方式总结
GUI编程规范总结:
1,一般情况下对话框第一栏都是菜单栏,因此首先就是建立菜单栏。在GUI控件使用时所有的控件都是层层嵌套的,说的意思就是控件依托,并最终整合到面板上,进而在添加事件侦听器,以响应时间的发生;
建立菜单:
private JMenu JSSFMenu=new JMenu(“结算收费(J)”);private JMenuItem DBCZItem=new JMenuItem(“电表出帐/审核(A)”);private JMenuItem DBJFItem=new JMenuItem(“电表缴费(F)”);
* GUI程序设计模式总结:
* GUI框架的设计步骤:
* 1,首先要建立主框架:方法如下: JFrame f=new JFrame();
* 2,取得框架的内容窗格 Container contentPane=f.getContentPane();
* 3,在制作复杂的用户界面时,常常需要使用多个JPanel将复杂的界面分解为相对建大的子界面,然后在对每个JPanel进行布局;
JPanel p=new JPanel();
* 在布局管理器中:
* 对于流式布局则是直接调用add(p);里面的p指的是组件的对象
* 对于边框布局都是调用add的重载函数来实现的;例如边框布局采用的add(new JButton(“North”,BorderLayout.NORTH));
setLayout();
public void setLayout(LayoutManager mgr)设置此容器的布局管理器。
参数:
mgr-指定的布局管理器
例如设置网格布局管理器:p.setLayout(new GridLayout(3,2));
* 对于网格布局则有下面的添加组件的代码框架: JPanel p=new JPanel();
p.setLayout(new GridBagLayout());容器p设置为网格袋布局
/创建约束条件:
GridBagConstraints constraints=new GridBagConstraints();
//按照约束条件constraints将txtField添加到p中;
p.add(txtField,constraints);
* 4,将面板添加到框架的内容窗格中;contentPane.add(p);这里的p就是组件对象;
* 这里的add的添加方法不同就有不同的布局管理:这里的例子是边框布局
2,处理控件的依耐关系,及消息的定义;各种细节的设计(例如快捷键)
消息的处理机制将是以后重点的研究对象,本程序内采用匿名内部类的方法实现;
任何实现了Actionlistner接口的类所生产的对象,均可作为事件的侦听器,并实例化actionformed()这里面有消息处理的方法;
3,控件的逐级加入,JSSFMenu.add(DBJFItem);//将下拉子菜单加入到主菜单中去 menuBar.add(JSSFMenu);//将主菜单加入到主菜单工具条中
4,引入面板对象JPanel,在这之前要定义到要加入到面板的控件,例如标签,Jlable 可以对控件进行必要地显示效果设置,这些都可以调用现有的方法实现,参考说明文档就可以实现;
最后要设置控件的布局模式:
5,将面板加入到框架的内容窗格中; contentPanel.add(P);在制作复杂的用户界面时,常常需要使用多个JPanel将复杂的界面分解为较为简单的子界面,然后再对每个JPanel进行布局。此时我们知道,面板就是一个容器,以此为依托包含各种组件,最后在框架中时并独立设置这些组件的布局方式:contentPane.add(statusPanel,BorderLayout.SOUTH);这里的这个例子就是将statusPanel加入到框架中去,并设置了其在主框架中的布局:south 其实面板对象内部,也是需要设置组件的布局方式,因为面板中还有标签,文本。如下:
LayoutUtil.add(statusPanel,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,0,0,1,1,labStatus);这也遵循逐级加入的思想,这种逐级加入的设计思想,使GUI程序设计的由内至外,逐步添加。使程序更加明朗;
代码如下: /* * 主要研究java程序设计的基本步骤与方法,以及程序在设计过程中应注意的问题及原则 * 这是主程序MAINAPP 也就是主程序的入口,是显示框架的模块 * 研究框架的设计模式以及主要的java技术,* 对话框设计的一般模式如下:
* 1,确定所选取的控件,一般情况下,都是在第一行建立菜单栏。* 建立菜单:注意上下菜单的依耐关系;
* 2,主程序界面的显示:获取框架的内容窗格;Container contentPane=f.getContentPanel();* 如下的例子: * * */
import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;import javax.swing.border.*;import java.sql.*;import java.util.*;import edu.njust.cs.*;
class MainApp extends JFrame{ //系统启动时的等待画面
private JFrame splashScreen=null;//收费结算菜单
private JMenu JSSFMenu=new JMenu(“结算收费(J)”);private JMenuItem DBCZItem=new JMenuItem(“电表出帐/审核(A)”);private JMenuItem DBJFItem=new JMenuItem(“电表缴费(F)”);//基础资料菜单
private JMenu JCZLMenu=new JMenu(“基础资料(Z)”);private JMenuItem GYItem=new JMenuItem(“雇员资料(G)”);private JMenuItem CBBItem=new JMenuItem(“抄表班(C)”);private JMenuItem SFBItem=new JMenuItem(“收费班(S)”);private JMenuItem FLItem=new JMenuItem(“费率(F)”);private JMenuItem DBItem=new JMenuItem(“电表资料(D)”);//设置菜单
private JMenu SZMenu=new JMenu(“设置(C)”);private JMenuItem SysConfigItem=new JMenuItem(“系统参数设置...(S)”);//帮助菜单
private JMenu HelpMenu=new JMenu(“帮助(H)”);JMenuItem aboutItem=new JMenuItem(“关于本程序...(A)”);//内容窗格
private Container contentPane;//当前内容窗格中的面板
private JPanel selectedPanel=null;//状态信息
JLabel labStatusContent=null;//登录用户
private JLabel labUserContent=null;//数据库连接
Connection con=null;//参数信息
private Properties prop=null;
public MainApp(){ /*SwingUtilities.invokeLater(new Runnable(){ public void run(){ showSplashScreen();} });*/ //创建菜单
setIconImage(new ImageIcon(“image/title20.jpg”).getImage());this.setTitle(“结算收费演示系统”);contentPane=getContentPane();//创建菜单
constructMenu();//创建状态条
constructStatusPanel();//读入系统参数 } public void constructMenu(){ //创建菜单 //构建菜单
JMenuBar menuBar=new JMenuBar();//收费结算菜单----------------BEGIN JSSFMenu.setMnemonic(KeyEvent.VK_J);//表示助记符的键代码 //电表出帐
DBCZItem.setMnemonic(KeyEvent.VK_A);/*DBCZItem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ MainApp.this.setSelectedPanel(new DBCZPanel(MainApp.this,con));} });*/ //利用匿名内部类实现消息侦听
JSSFMenu.add(DBCZItem);//将下拉子菜单加入到menuBar中;
//电表缴费
DBJFItem.setMnemonic(KeyEvent.VK_F);
JSSFMenu.add(DBJFItem);menuBar.add(JSSFMenu);//收费结算菜单----------------END
//基础资料菜单----------------BEGIN JCZLMenu.setMnemonic(KeyEvent.VK_Z);//雇员
GYItem.setMnemonic(KeyEvent.VK_G);
JCZLMenu.add(GYItem);//分隔线
JCZLMenu.addSeparator();//抄表班
CBBItem.setMnemonic(KeyEvent.VK_C);
JCZLMenu.add(CBBItem);//收费班
SFBItem.setMnemonic(KeyEvent.VK_S);
JCZLMenu.add(SFBItem);//费率
FLItem.setMnemonic(KeyEvent.VK_F);
JCZLMenu.add(FLItem);//分隔线
JCZLMenu.addSeparator();//电表
DBItem.setMnemonic(KeyEvent.VK_D);
JCZLMenu.add(DBItem);menuBar.add(JCZLMenu);//设置菜单-------------BEGIN SZMenu.setMnemonic(KeyEvent.VK_C);//系统参数设置
SysConfigItem.setMnemonic(KeyEvent.VK_S);SZMenu.add(SysConfigItem);menuBar.add(SZMenu);//设置菜单-------------END //帮助菜单-------------BEGIN HelpMenu.setMnemonic(KeyEvent.VK_H);//关于
aboutItem.setMnemonic(KeyEvent.VK_A);HelpMenu.add(aboutItem);menuBar.add(HelpMenu);//帮助菜单-----------END setJMenuBar(menuBar);}
//创建状态条
public void constructStatusPanel(){ //将控件几种加入框架,并利用合理利用布局模式
JPanel statusPanel=new JPanel();//新建一个面板JPanel,这个面板对象只管下面状态栏的显示;
Border loweredBevelBorder=BorderFactory.createLoweredBevelBorder();//设置边界样式 statusPanel.setLayout(new GridBagLayout());//利用面板对象设置布局模式;为GridBagLayout布局
JLabel labStatus=new JLabel(“ 提示信息 ”);labStatusContent=new JLabel();JLabel labUser=new JLabel(“ 用户名 ”);labUserContent=new JLabel();labUserContent.setPreferredSize(new Dimension(90,3));
labUser.setBorder(loweredBevelBorder);labUserContent.setBorder(loweredBevelBorder);labStatus.setBorder(loweredBevelBorder);labStatusContent.setBorder(loweredBevelBorder);//设置组件边框;
LayoutUtil.add(statusPanel,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,0,0,1,1,labStatus);LayoutUtil.add(statusPanel,GridBagConstraints.BOTH, GridBagConstraints.CENTER,100,100,1,0,1,1,labStatusContent);LayoutUtil.add(statusPanel,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,2,0,1,1,labUser);LayoutUtil.add(statusPanel,GridBagConstraints.VERTICAL, GridBagConstraints.CENTER,0,100,3,0,1,1,labUserContent);//设置控件的布局,调用自定义包中的方法;
contentPane.add(statusPanel,BorderLayout.SOUTH);}
public static void main(String []args){ Font font=new Font(“微软雅黑”, 0, 12);SetFont.setFont(font);//设置全局字体 MainApp ma=new MainApp();ma.setDefaultCloseOperation(EXIT_ON_CLOSE);ma.setSize(600,400);//设置主画面初始大小 ma.show();//满屏显示
//ma.setExtendedState(MAXIMIZED_BOTH);} }
程序运行结果如下:
第二篇:程序编码总结
技术部工作总结
大家好,我是…的...,接下来由我为大家分享我这三个月的收获。
从研讨室培训出来我就被分到了畜牧组,对此我感到特别的幸运。大家一起工作,一起加班,在积极融洽的氛围中共同学习,共同成长。这让我摆脱了初涉职场的迷茫,并且逐渐热爱工作,沉醉工作。下面就是我对这几个月工作的总结:
学习是提升自己、丰富自己的有效途径。刚进组时我对一切还有些陌生,渐渐的我学会了如何使用公司的框架,如何对猪源系统业务进行分析,还学习了有关项目管理的九大知识领域、五大过程。知道了项目的意义,项目管理的价值及项目管理的需求管理。知道了什么是需求开发,业务需求、需求验证以及需求管理和需求调研。在研讨室的几天里,更是让我知道业务是要经过讨论才会变得更加完善,也为我日后的工作指明了方向。最近我也在了解有关TRS网站方面的知识,以及如何使用TRS去开发网站。在这期间让我深刻感觉到自我学习的重要性。
前辈的帮助与教导是我迅速成长的助力。在开发期间,磊哥教会了我很多的有关编码格式,编码技巧以及功能模块的解决方案。他教会我在实际开发中要有整体意识,先想解决方案然后再进行编码,在想解决方案的同时要考虑简化sql语句,减少频繁操作数据库,页面不必要的代码或空格会影响加载效率,当然 也要考虑代码逻辑是否需要简化,怎么样才能减少bug数量。此外有关Echart图表的应用也让我在工作中少走了不少弯路。在此期间,我越来越懂得谦逊,谦虚使人进步,骄傲使人落后。世界之大,有许多东西是我所不知道的,我只有谦逊,不断学习,不断充实自己,才能有一个更好的自己。
实践是检验真理、巩固知识的关键。在这期间我做了一个有关审批系统的功能维护,这让我真切的感受到了代码格式以及代码注释的重要性,代码规范可以为后期维护减少大部分时间。然后我了解了有关统计的功能,让我知道统计最重要的就是sql语句的编写,在做统计模块的时 候要先分析统计图之间是不是有关联,如果有可不可有一条语句全部查出来。还学习了有关打印的功能,套打主要就是进入相关的lodop插件跟js,然后磊出打印样式就可以实现。在这期间还写了有关日报系统的功能,这让我更加确信代码格式的重要性。更让我知道了实现一种功能可以有很多的途径和解决方案。纸上得来终觉浅,绝知此事要躬行。在一个个实际操作中我更加透彻的理解了相关知识,也对自己的知识储备感到不满,日后定会积极汲取知识,学习经验,为日后工作打下扎实基础。
时刻自省以追求进步。在工作中我也发现了自己还有很多地方做的不够好,也有很多地方需要学习,今后我定会刻苦努力,补短板,提质量,工作认真负责,态度积极向上,不让工作有漏洞,不给客户留bug。
以上就是我这三个月的心得体会,谢谢大家。
第三篇:证券交易程序和方式范文
一、判断题
1、证券交易,主要是指投资者通过经纪人在证券交易所买卖股票的交易。
2、市价委托是投资者要求证券经纪人按限定价格或更优的价格买入或卖出证券。
3、竞价成交机制使证券市场成为最接近充分竞争和高效、公开、公平的市场,也使市场成交价成为最合理公正的价格。
4、证券交易成交后意味着交易行为的了结。
5、过户是股票交易的最后一个环节。
6、市价委托指令可以在成交前使投资者知道实际执行价。
7、保证金交易的风险大于现货交易.8、期货交易是买卖双方约定在将来某个日期按成交时双方商定的条件交割一定数量某种商
品的交易方式。
9、套期保值者是指那些把期货市场当作转移价格风险的场所,利用期货合约的买卖,对其
现在已拥有或将来会拥有的金融资产的价格进行保值的法人和个人。
10、期货交易之所以能转移价格风险,在于某一特定商品或金融资产的期货价格和现货价格
受相同的经济因素影响和制约,它们的变动趋势是一致的。
11、期货交易所通常采取会员制形式,会员席位有严格限制,席位可以公开出售转让。
12、由于在期货交易中买卖双方都有可能在最后清算时亏损,所以双方都要交保证金。
13、二板市场是扩大证券发行市场规模的必要条件。
14、竞价成交的原则是“时间优先,价格优先”。
15、我国证券交易所全部采用会员制。
16、普通投资者可以直接进入证券交易所进行证券买卖交易。
17、卖方以取得期权费为代价出售这种权利,在期权合约的有效期内卖方必须无条件服从买
方的选择,除非买方放弃这一权利。
18、证券买卖的清算和交割工作只存在于证券商和投资者之间。
19、场外市场上的交易对象不包括上市公司证券。
20、限价委托和市价委托都能控制成交价格风险。
二、单项选择题
1、证券公司和客户之间是______的法律关系。
A 委托代理关系B 抵押关系C 信托关系D 无任何法律关系
2、投资者和证券经纪商当面以书面形式办理委托手续是______委托方式
A 电话委托B 递单委托C 自助终端委托D 传真委托
3、证券市场的市场属性集中体现在______。
A 委托B 结算C 过户登记D竞价成交
4、每个交易日结束后对每家证券公司当日成交的证券数量与价款分别予以轧抵,对证券和资金的应收应付净额进行计算和处理的过程是指______。
A 证券交割B 交收C 结算D 证券清算
5、大多数国家证券交易市场采取的交割时间安排是______。
A 当日交割、交收B 次日交割、交收
C 例行日交割、交收D 特约日交割、交收
6、市价委托指令的特点是______。
A 委托价格固定化
B 成交价格理想,投资者可事先确定投资成本
C 委托人不限定价格,经纪人可按市场价格变化灵活掌握,随机应变
D 有一定的委托有效期限制
7、______在我国证券市场监管体制中处于核心地位。
A 证券交易所B 证券业协会
C 中国证监会D 国务院
8、证券买卖成交后,按成交价格及时进行实物交收和资金清算的交易方式是指______。
A 现货交易方式B 信用交易方式C 期货交易方式D 期权交易方式
9、在我国证券市场监管体制中处于核心地位的监管机构成立于______。
A 1991年8月B 1992年10月C 1991年10月D 1992年8月
10、国际市场上最早出现的期货品种是______。
A 外汇期货B 黄金期货C 谷物期货D 石油期货
11、下列不属于证券服务机构的是_______。
A 证券评级机构B 证券金融公司
C 证券登记结算公司D 证券交易所
12、在合约到期前,交易者除了进行实物交割,还可以通过______来结束交易。
A 投机B 对冲C 交收D 主动放弃
13、______交易的保证金是买卖双方履行其在合约中应承担义务的财力担保,起履约的保证作用。
A 信用B 期货C 现货D 以上皆非
14、期权交易是对______的买卖。
A 期货B 股票指数C 某现实金融资产D 一定期限内的选择权
15、看涨期权买方购买基础金融工具的最高买价是______。
A 协议价减去期权费B 协议价加上期权费
C 协议价D 基础金融工具的市场价格
16、期权交易还可为买方转嫁风险。对做保证金交易的投资者来说,为了将亏损限制在一定范围内,投资者可通过______的办法将一部分风险转嫁出去。
A 保证金买入和买入看涨期权B 保证金买入和买入看跌期权
C 只买入看涨期权D 保证金买空和买入看跌期权
17、______是指外国专业投资机构到境内投资的资格认定制度。
A QFIIB PE
C RQFIID QDII18、证券商的义务不包括______
A 执行投资者的委托指令,买卖证券B 保管投资者的证券账户
C 维持证券市场交易秩序D 为投资者提供投资信息
三、多项选择题
1、证券交易方式可以分为______。
A 现货交易B 信用交易C 期货交易D 期权交易
2、委托方式指投资者为买卖证券向证券公司发出委托指令的传递方式,有______。
A 递单委托B 电话委托C 传真委托和函电委托
D 自助终端委托E 网上委托
3、期权交易对期权买方的功能有______。
A 期权的买方可利用其杠杆作用获利
B 期权交易有风险防范功能和风险转嫁功能
C 期权的买方可获得稳定的投资收益
D 期权交易对已经取得的账面盈利有保值功能
4、证券结算业务环节包括______。
A 清算B 交割C 交易D 交收
5、在我国,证券登记的类型有______。
A 托管登记B 发行登记C 注册登记D 过户登记
6、市价委托的优点是______。
A 指令下达后成交速度快B 成交率高C 比限价委托优先D 成本低廉
7、______属于证券衍生工具交易品种。
A 权证B 股指期货
C 可转换公司债券D 期权
8、证券交易所的组织形式主要有______。
A 公司制B 企业制C 会员制D 其它
9、当保证金账户上有了超额保证金时,投资者可以______。
A 提取超额保证金B 偿还证券公司的贷款
C 以此再追加购买股票D 以此申请银行贷款
10、期货交易是发达国家金融创新的主要品种,将期货交易引入证券市场可以______。
A 增加了交易的品种B 提高了交易量
C 拓展了证券市场功能D 提供了规避风险的手段
11、按参加期货交易的目的不同,可将期货交易的参加者分为______。
A 长期投资者B 套期保值者C 投机者D 做市商
12、期货交易最主要的功能是______。
A 风险转移B 长期投资C 价格发现D 销售商品
13、______属于场外交易市场。
A 第三市场B 二板市场C 第四市场D 证券交易所
14、______属于金融机构。
A 证券经营机构B 中国银行C 保险公司D 金华银行
15、以下关于期权交易的说法,正确的是______。
A 期权交易的买方有义务在期权到期时,买入期权中的标的物
B 期权交易的卖方有义务在期权到期时,卖出期权中的标的物
C 期权交易的买方需要向卖方支付一定的期权费
D 期权交易的卖方需要向卖方提供标准化的期权合约
16、在期权合约的有效期限内,期权的买方可以______。
A 行使买进或卖出期权标的物的权利
B 让期权到期自动失效
C 提前终止合同
D 以一定价格让渡这一权利或在他认为行使权利对自己不利时放弃这一权利
17、期权交易与期货交易的区别有______。
A 交易对象不同
B 交易双方的权利和义务不同
C 交易双方承担的风险和可能得到的盈亏不同
D 缴付的保证金不同
18、证券交易所的重要地位有______。
A 证券交易平台B 证券交易心脏
C 证券交易枢纽D 自律组织
19、证券交易所的功能有______。
A 集中证券交易供求关系B 形成公平合理的证券交易价格
C 引导社会资金的优化配置D 经济的的“晴雨表” 20、2001年施行公司制改革的证券交易所有______。
A 德国法兰克福证交所B 日本东京证券交易所
C 纽约证券交易所D 斯德哥尔摩证券交易所
第四篇:模具设计规范总结
模具设计规范
1、模具行程如何计算?
落料模
落料模行程S=A+料厚+切入量+倾斜角
A:最小2mm S:最小14mm
小件行程S=15mm 大件行程S=20mm
拉延模
拉延模的行程S=t+A
0t:下死点状态的压边圈型面至凸模最高点。
0A:余量5~10。
注:所有外板件加工前,胚料不能与凸模相接触:内板件加工前,结构较深的可以局部接触(有项目负责人指导)。
修边模
修边模的行程S= t+b+a
0t:t/sinθ(小数点以下进位)。
0b:最大切入量6mm。a:余量为10mm。
注:倾斜角为10˙切入量要和倾斜角垂直成2mm。
翻边模 墩死成形时翻边模的行程S=b+a。
b:凹模与板件接触到成型完成时的量。a:余量(min10mm)。
2、模具刀块规格如何确定?
落料模
落料模下模刀块规格:
高度最小40mm,宽度最小90mm,长度标准300mm,刀块全部符型。
刀块空刀5mm,空刀高度20mm:刀块下部托板空刀10mm。
落料模上模刀块规格:
高度最小40mm,宽度最小90mm,长度标准300mm,刀块全部符型。翅膀高度25mm,沿口线筋的宽度20mm。
刀块空刀5mm,空刀高度30mm;刀块下部托板空刀10mm。刀块空刀宽度10mm。
修边模
钢材结构
高度最小为40mm,宽度最小为60mm。完全淬火长度为250mm、淬火为300mm。
刀块空刀1~3mm,空刀高度15mm;刀块下部托板空刀10mm。刀块空刀宽度10mm。
A≥1.3H或A≥0.25L A:刀块宽度 H:刀块高度 L:刀块长度
铸造空冷钢结构
高度最小为60mm,最高为200mm;宽度最小为50mm,长度标准长为300mm,沿口线筋的宽度SPC材料25mm。高度钢材30mm,加强筋的宽度为20mm。
刀块空刀5mm,空刀高度为20mm。刀块下部托板空刀高度为10mm。
A≤H/1.2 或L≤B/0.6
A:刀块的宽度 H:刀块的高度 L:刀块的长度
废料刀结构
高度最小为35mm,宽度最小为55mm,沿口线筋的宽度25mm,加强筋的宽度为15mm.废料刀空刀为5mm,空刀高度为30mm,废料刀底部空刀为10mm.翻边模
钢材结构
高度最小40mm,宽度最小60mm,长度完全淬火标准长250mm,淬火标准长300m.刀块高空刀2~3mm,空刀高度为距弯曲点15mm,刀块宽空刀5~10mm,空刀宽度为最小15mm,刀块下部托板的空刀为10~20mm。
A/H=1.5 A:刀块的宽度 H:刀块的高度
补充凸模空刀高度距离料边10mm,最小空刀高度为30mm.铸钢结构
高度最小为50mm,空刀高度最小为80mm,长度标准300mm 刀块空刀5mm,空刀高度凹模距离弯曲点15mm.凸模距离料边10mm,最小空刀高度30mm。刀块下部托板空刀为10~20mm。
A/H=1.5 A:刀块宽度 H:刀块高度
注:刀块总高度低于100mm不设加强筋。.3、档墙如何设立?
落料模
下模
长X宽X高=70X30X20 上模
长X宽X高=70X30X25 刀块连接处的档墙长度120mm。
修边模
宽X高=40X30
翻边模
宽=40 高最小20mm应尽量高。
废料刀在1.6以上时设定档墙,档墙要和废料刀的相同角度进行避让。
4、刀块如何分割?
刀块分割必须注意以下几点:
1、刀块的标准长度为300mm(250≤L≤400).2、分块位置要错开,标准20以上,最小10mm.3、当刃口线夹角小于30°或圆弧半径小于5mm时分块们置距离圆弧终点5mm以上。
4、不倾斜分块,分块线与圆弧切线夹角保证在60°以上。
5、分块确保一条边为直边。
6、刀块最窄处
SC材30mm以上
钢材30mm以上
FC材30mm以上
5、螺栓及销钉的设定。
钢材结构设定螺钉要满足以下几点:
1、螺钉必须交错排列。
2、坚固螺钉基本上使用M12,3、切刃螺钉及销钉的直径,长度要基本相同镶块分块位置旁边必须设定螺钉。
4、镶块长度决定螺钉数量:
150mm以下2个螺钉
150~250mm设3个螺钉
250~350mm设4个螺钉
5、沉孔边缘距离刃口15mm以上,孔中心距离刀块侧面20mm以上。
铸件设定螺钉和销钉要满足以下几点:
1、镶块的长度决定螺钉的数量。
150以下的设2个 150~230mm设3个 230mm以上的设5个
2、螺钉、销钉孔边缘距离刃口30mm以上,孔中心距离沿口线筋内壁20mm以上,刀块侧面25mm以上。
螺钉
销钉
φD 钢材
M12X50
φ13X50
第五篇:短信格式(sms)以及编码总结
短信格式(sms)以及编码总结
一、短信猫操作分为三种模式: Block、Pdu 和 Text
1、Block 模式基本已经被 Pdu 模式取代,没有具体研究。
2、Text 模式比较简单,但是支持的设备不是很全,而且不能实现中文。AT + CGMF=1
3、Pdu 模式
Pdu 编码主要包括两个主要的部分,一是 pdu 串的整体数据格式,分别因为发送信息串和接收信息串而有区别,二是 pdu 中文本部分的编码,分别因为字符集而不同。
我们也可以这样来理解这个 pdu 编码的格式,sms 相当于一个协议栈,最简单的协议栈: 根据 gsm03.40 规范,sms 协议包括以下几层:
1、SM-AL :应用层。这个部分就是数据部分。
2、SM-TL :传输层。我们可以清楚的看到这里描述了主要的短信内容,包括发送号码,接收号码,信息类型,编码,数据报长度等等,这也是我们编程主要要面对的问题。
3、SM-RL :中继层。这个指的是短信在网关之间中继需要的协议。
4、SM-LL:链路层。
从上述描述中我们可以清楚的看到,我们编程主要集中于传输层。
二、短信传送有三种编码: 7 位,8 位,UniCode
1、英文 7 位编码 这是 gsm 的默认编码方式
由于这样的移位,我们可以看到我们能发的最多英文字符等于: 140*8/7 = 160。
2、数据 8 位编码
8-bit 编码通常用于发送数据消息,比如图片和铃声等;
3、中文 pdu 编码 发送中文时,必须用 UCS2(utf-16)进行编码,最多可以发 140/2 = 70 个汉字。UniCode 编码转换也比较简单,以中文为例,一个中文字符是两个字节,直接对高位字节和低位字节进行十六进制转换就可以了。如“欢迎”,UniCode 编码是 6B22 8FCE,这同时也就是转换的结果,如果发送的串中有英文字符,那么在前面补全 00,以保证一个字符对应两个字节。
4、PDU 串的用户信息(TP-UD)段最大容量是 140 字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是 160、140 和 70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。
三、地址编码
短信发送中都会涉及到短信地址的问题,他们的编码规则是一致的 , 简单来说就是 BCD8421码编码。
如: 08 91 6808501505F0,08 :地址长度,(号码类型 + 号码长度)/2 的十六进制表示 91 :号码类型
683108501505F0 :号码,实际号码应为: +86***,号码处理方法为 , 如果为 +86 开始 , 将 + 号去掉 , 然后判断是否为偶数 , 不是在末尾补 F, 然后将奇数位和偶数位互换
四、编码示例
1、发送信息的 PDU 串:
用手机写一条短信息,发送手机号码为 ***,信息内容为“ Hello World!”。通过执行 AT + CMGL=2 可以读出此条信息。
AT+CMGL=2 {读未发短信息} +CMGL: 1,2,24 {1表示信息个数,2表示未发信息,24表示信息总容量} 08 91 683108501505F0 11 00 0B 81 3106656930F1 0000FF 0B E8329BFD06DDDF723619 OK 下面分析这条信息:
2、接收信息的 PDU 串
读取以上发送出来的短信,可以收到如下信息 , 接受到来自 *** 的“欢迎”PDU 串为: 08 91 683108503705F0 04 0D 91 683106504562F7 00 08 30507080635400 046B228FCE。对以上的 PDU 串分析如下表:
五、接收短消息 一般有两种接收模式.AT+CNMI=2,1,0,0,0 接受并存到 SIM 串口接收到以下信息: +CMTI:“SM”,X AT+CMGR=X回车
(从X存储区读短消息)AT+CMGD=X回车
(从X存储区删除短消息)PDU状态: at+cmgf=0 OK +CMTI: “SM”,1 at+cmgr=1 +CMGR: 0,24 ***5 F0240D91683157805300F***81000462F11804 OK 文本状态: +CMGR: “REC READ”,“+86 ***”,“05/02/28,0:20:18+00” bbc OK 2.AT+CNMI=2,2,0,0,0 接受并直接到串口 串口接受到以下信息: +CMT: “+86***”,“01/09/13,11:04:09+32” AAA 附录:关于PDU模式发送短信:
第一,对模块写入 AT+CMGF=0<回车> 的AT命令(<回车> 要用 r 来实现),之后应该得到一个 OK 响应,才能继续进行下一步;
第二,对模块写入 AT+CMGS=
响应(特别要注意:r是回车,n是换行,>是一个大于号,>后面还有一个空格!),才能继续进行下一步;
第三,可以开始写入要发送的内容了。这一部分只是PDU串中的一部分,并不是完整的PDU串(如前所述,去掉了SMSC地址那一部分),这一部分要以 Ctrl+Z 结尾,但是我们要知道,在字符串中要带上 Ctrl+Z 的话,必须是用ACSII码。Ctrl+Z的ASCII码是16进制的 1A,所以你可以在你的字符串后面用strcat函数附加上 “x1A ” 来实现。这样之后,如果发送成功,你就会收到GSM模块的一个发送成功的响应,形如:
+CMGS: 246
OK 如果只有一个“OK”响应,没有类似于“+CMGS: 246”的部分,则并不能发送成功!所以,当你只收到一个 OK 响应的时候,那肯定是哪里出错了。