SAP FI 手札

SAP FI 手札
SAP FI 手札

SAP FI 手札

作者:Sundayman

FI的组织架构分为四个层次,如下表所示

各组织单位的作用简要说明如下:

①、 Client – Client是系统中最高层次的组织单元,每一Client有自已独立的主文件数据和交易数据。配置Client是必须的。

②、 Company - Company是会计中的一种组织单位,代表根据某个国家的商业法律要求而设立的商业组织。(A company is an organizational unit in Accounting which represents a business organization according to the requirements of commercial law in a particular country.)

在SAP中,合并报表的功能是建立在company的基础之上的。(Consolidation functions in financial accounting are based on companies.)

③、 Company Code –Compnay code是FI的最基本组织单位,资产负债表和损益表就是在这一层面上编制。所以,如果按法律要求,某个组织需独立核算,则须设立单独的company code.

国内很多ERP软件,都有一个账套(ledger)的概念。SAP系统的company code与ledger 并不相同,它只是FI模块中的一个组织单位。如果你要用物料管理模块,你需要定义plant (工厂),如果你要用成本控制模块,你需要定义controlling area。这样,不同的模块有不同的组织单位,可以通过相互指派的方法,表达集团公司的组织架构。比如:一个company code可以包含多个plant,一个controlling area可以包含多个company code。

④、 Business area – Business area用于内部报告目的,代表不同经营领域。每一business area可以有独立的财务报表(用于内部目的)。

以下内容为SAP FI模块中的若干概念、相关的前后台事务码及一些相关的截图。

1、进入SAP的后台配置界面

点击

2、定义公司和公司代码

①、概念理解

在SAP中,Company(公司)与Company Code(公司代码/公司码)是两个不同,但是又相联系的概念Company是根据相关法律规定出具财务报告的最小层次组织单元。

一个Client下,一个Company可以与一个或多个Company Code对应起来,一个Company Code只能对应一个Company。在启用SAP模块中,Company Code是必须的,而Company是选择性的。Company Code层次财务报表时自动生成的,而Company的财务报表是基于Company Code的合并报表。这也是SAP多维度和层次出具财务报表的一个体现。对于不需要出具这种合并报表的单位,Company是不需要进行维护的。若一个总公司下有多个子公司则可以给每一个子公司一个公司代码,各个子公司的报表合并到总公司里边去。

为了保证数据的一致性和可合并性,同一个Company下的Company Code必须使用相同的会计科目表(Chart of Account)和会计年度(Fiscal Year)。但是每个公司代码都可以使用不同的本币(Local Currency)。

②、相关事务码及截图

定义的Sundaywoman company

定义的Sundaywoman company code

3、定义信贷控制范围

①、概念理解

信用控制,简单一点说就是因为我们经常的产生赊销的业务,为了避免风险,在发货前进行的控制。举个例子:我们可以对客户进行信用额度,超过信用额度的即冻结不允许发货。

通过定义信贷控制范围我们可以把信用控制分配到整个集团或是一个公司代码下,比如我们可以整个集团是一个信用额度或者是某个公司代码是一个信用额度。

②、相关事务码及截图

4、定义业务范围

Business Area(业务范围)是根据单位的业务部门(Business Segment)或业务区(Business Area)域来划分确定的外部会计(External Accounting)的组织单元。

设置启用业务范围后,所有进入财务模块的记录都必须从业务范围的维度制定具体的业务范围,因此,可以基于业务范围出具满足内部目的(Internal Purposes)的财务报表(Financial Statements)。但是该组织单元的设置和启用时选择性的(Optional)。

实务中,外部机构可能要求编制提报外部分部报告(External Segment Reporting)。这种分部报告就是跨公司代码的,基于公司产品部门或业务区域产生的。例如,某集团将全集团划分为亚太区、欧洲区、美洲区、澳洲区等几个业务区域。但是公司代码不是区域维度划分的,因此,要出具这个区域维度的分部报告,就可以将这些区域设置为业务范围。如果定义了业务范围,进入总账的交易数据可为内部评估目的单独管理,出具业务范围层次的内部财务报表(Internal Financial Statements)。

完整启用业务范围后,必须保证所有的进入财务模块的记录行项目都增加业务范围——很多情况下,是录入单据的时候,指定业务范围,但是有的情况下,系统也可以通过主数据自动带出业务范围。例如,创建成本中心时,指定了这个成本中心的业务范围之后,使用成本中心时,相应的业务范围就自动确定了,不必重复指定,也不可矛盾的再次指定。

需要进行的基础配置:

A、定义业务范围:组织结构——>定义——>财务会计——>定义业务范围。

B、启用业务范围财务报表:财务会计——>财务会计全局设置——>业务范围——>使用业务部门的资产负债表

C、将业务范围指定给其他主数据,如成本中心、内部订单

业务范围是可跨公司代码,即一个公司代码可包含多个业务范围,每个业务范围可属于多个公司代码,是多对多的关系——这点比较重要,也涉及到很多具体的相关业务,因为完整启用业务范围,意味着所有的凭证都要业务范围上。

SAP的合并可以从多个维度进行,可以有按利润中心合并、按公司代码合并,当然也可以按业务范围合并。

是否启用业务范围不是必须的,视情况而定

5、定义功能范围

功能范围是针对各个成本对象中的相应费用科目进行属性归类,通过功能范围的定制可以为成本中心类别制定属性。

理解SAP的整个生产费用结转过程,先熟悉一个重要名词:功能范围,功能范围简单理解就是费用属性,你也理解其为一个“复杂的”辅助核算字段。

为什么起用功能范围?

首先,因为SAP的科目不象国内传统习惯设置多级,其次,象SAP这样高度集成的系统,很多会计凭证是从各模块集成过来的,举一个比较典型的例子,辅助生产车间、基本生产车间、销售部门、管理部门都有计算机,假设将计算机设置为一资产类别(Tcode:OAOA),如下图:

资产分类10100代表计算机,对应一科目分配10,然后Tcode:AO90给配置各种资产业务对应的会计科目,最典型的是折旧费用和累计折旧这对科目,在AO90定义计算机折旧费用科目时,如果单从折旧费科目本身上,实际上是不能区分折旧费用辅助生产、基本生产成本、销售费用还是管理费用,然而,在建立资产主数据时,通常会输入资产所对应的成本中心,在SAP中,成本中心主数据可设置功能范围和业务范围/利润中心(可根据业务范围/利润中心出费用报表),折旧费用 + 功能范就区分出了费用性质,现在你可以理解说功能范围类似一个不需要手工输入而自动从成本对象带出的辅助核算字段,成本中心就是一常见成本对象,生产工单和实际内部订单等也是成本对象。

SAP中,成本对象都设置有主数据,比起一般的“辅助核算”字段而言,两者核算信息量显然不可一日同语。

配置路径:

财务会计(新)--财务会计的全局设置(新) -- 分类账--字段 -- 销售核算花费的功能范围

A.定义功能范围

B.激活公司代码下的功能范围

C.配置总账科目的功能范围(比如财务费用等科目特别设定,如有交易数据到OBA5定义FH 600为警告类型)

D.定义成本中心的类别与功能范围的对照

E.KS02修改成本中心的功能范围(如有交易数据到OBA5定义FH 600为警告类型)

功能范围是否启用,也不是必须的,视企业情况而定,下面是对SAP费用科目设置的一点意见,可供企业选择:

业务说明

费用主要是指中国会计准则下的几大期间费用:制造费用、销售费用、管理费用,对于财务费用,一般子科目较少,不作为讨论范围。

SAP的费用科目设置主要有以下两种方案:

第一种,按照传统的方式,每个费用子科目设置费用科目。例如,设置“制造费用-办公费”,“管理费用-办公费”,“销售费用-办公费”。

第二种,设置一套费用科目,通过功能范围区别是什么类型的科目。例如,设置“费用-办公费”,再分别设置功能范围:制造费用类、管理费用类、销售费用类。

下面就两种方法进行比较分析。

①、分别设置子科目的方案

在这种方案下,有以下几个好处:

A、各类型的科目容易区别。

B、可以快速在总账中查询相关科目的金额。

C、报表的输出简单。

缺点:

A、子科目众多。

B、很难对某一类型的费用进行集中分析。

C、在设置固定资产的成本中心数据时,无法直接按照资产类别进行科目设置,需要为了核算需要进行另外的处理。

关于固定资产的科目设置的说明:

在一般情况下,资产类别只需要按照资产本身的类别进行设置,但是每个费用科目是设置到每个资产类别的,所以必然导致需要按照资产的折旧费用的承担对象再分类,这样就造成了资产类别的复杂化。或者采用先记账到一个中转科目,然后再通过中转科目进行分配。

关于报表输出的说明:

直接按照正常的方式即可获得利润表。

②、设置一个单独的费用科目的方案

在这种方案下,有以下几个好处:

A、科目数量较少。

B、容易针对某一类型的费用进行集中分析。

C、固定资产的成本中心数据设置简单。

③、采用功能范围的具体方案:

A、按照三个大类设置功能范围,可以分明细设置,例如制造费用大类下可以细分为主生产费用、辅助生产费用。

B、按照三个大类设置不同的成本中心类别,定义成本中心类别默认的功能范围,成本中心

的类别必须同功能范围相同或者更加细化。

C、必要时,也可以允许在过账时允许修改功能范围,通过字段状态变式进行调整。

关于固定资产的科目设置的说明:

A、因为费用科目按照功能范围设置,所以只需要在固定资产的主数据中设置不同的成本中

心即可实现自动过账折旧费用到不同类别的费用科目。

B、固定资产的类别可以按照资产本身的特性分不同的资产类别。

关于报表输出的说明:

需要单独的开发才能输出利润表。

6、会计科目表

①、概念理解

先来说明标题中的两个概念:

Chart of accounts (COA) 指包含所有总账科目定义,按顺序排列的清单,其中每一项都是一个总账科目,这个总账科目就是G/L Account了。Chart of accounts在中文中一般译为科目表。

在SAP系统中,每一个总账科目(G/L Accoun)都有两个层次(level),首先必须在Chart of accounts level维护相关信息,然后再在company code level维护附加的信息。Company code所用的科目表叫operating chart of accounts. 看了下面的图示应该就清楚了。

在数据库中,COA level的表是SKA1 – G/L Account master (chart of accounts),company code level的表是SKB1 – G/L account master (company code)。有兴趣查看一下,就知道各种信息是究竟存储在哪个表中。(查看表的方法可以用T-code: SE11 / SE16 / SE16N)

7、字段状态配置

①、概念理解

总账科目的定义无疑是会计核算的重要前提之一。完成第6设置后,还有一项field status variant,才可以在系统中创建会计科目。

在输入会计凭证时,每一行(line item)都有很多的字段(field)可供输入,但并不是每家公司都用得上这么多字段,所以,为简化输入,SAP系统先定义一个叫field status的变式(variant),规定这种类型的variant什么字段是必输的(mandatory),什么字段是可输也可不输的(optional),什么字段是隐藏的。然后,在定义科目主档时,选择一种field status group作为科目的属性,就可以控制这个科目的显示格式(layout)。

选中右边的一项字段状态组,点击

8、创建会计科目

几个主要字段的说明

SAP系统维护总账科目可以单一维护(individual processing),也可集中维护(collective processing)。维护可以分两个层次,先在COA level维护,再在company code level维护。也可以一次性同时维护好COA与company code层次的数据。相关Tcode如下:

FSP0 Maintain G/L accounts at COA level, individually

FSS0 Maintain G/L accounts at company level, individually

FS00 Maintain G/L accounts at both level, individually

OB_GLACC11 Maintain G/L at COA level, collectivelly

OB_GLACC12 Maintain G/L at company level, collectively

建议通常用FS00维护

A、Account Group,即定义的科目群组

如果储存后发现错误,默认情况下系统不允许修改。修改需要用tcode: OBA5将消息号为FH602的消息更改为warning message才可修改。如果是将P&L科目更改为BS科目,系统还会检查是否有关联的成本要素(cost element),如果有,要先删除成本要素。

注意OBA5是修改FI模块的消息控制(message control)。

B、 Account Currency

如果货币设为本位币以外其它货币,则科目只能用该货币过账,如果货币设为本位币,则科目可用任何货币过账。这种设置有时会有一些麻烦,比如有一个现金-RMB科目,如果RMB 是本位币,则不能限制这一科目只能输入RMB。

C、Only balances in local currency

If this indicator is set, account balances will not show in separate currency, all in base currency.(This is because the account is posted in local currency.) 如果设置,科目余额将不能以不同货币显示,只能以本位币显示

SAP 系统有一个特殊科目GR/IR,必须设为only balances in local currency,否则在过账时,系统会提示编号为F5672的错误。

D、 Reconciliation account 统驭账户

Define the account to be a reconciliation account, which ensures the integration of a sub-ledger account into the general ledger. This means that a posting to a subsidiary ledger posts to the corresponding recon. Account in the G/L at the same

time.(Asset, Customer, Vendor). Recon. Account cannot be posted directly

定义一个账户为统驭账户,可以保证总账科目与明细科目的集成。即明细科目的过账也会同时过账给总账科目。统驭账户不能直接过账,常见的如资产、供货商、客户。

E、 With Open item management 未清项目管理

对设为有open item管理功能的科目,系统会有一个结清(cleared0状态,并以红灯、绿灯标记某一行是否结清。只有在外币、本位币同时为0时才可以结清。

绿灯表示已结清,红灯表示未结清(open)。有了这一功能,省去手工编备查簿,明细表等工作。

注意,如果科目设为普通科目,有交易后又想改为open item科目,系统不会允许修改。错误消息号也不可以更改控制。如果想将一个有open item management的科目改为普通科目,则要先结清所有明细后再更改。

F、Sort Key 排序码

Sort key determines the assignment field in doc. entry. By default, the system will sort the line items by the assignment field. 排序码决定凭证录入时如果手工不填写Assignment字段,则以sort key规定的方式填写Assignment字段的内容。默认情况下,系统按排序码进行排序。

建议通常用001

G、Field Status Group 字段状态组

即是上面设置的内容,控制字段是必输、可选还是隐藏。

H、Post automatically

对有些系统通过科目确定(account determination)自动过账的科目,勾上此选项,则不可以在FI模块手工过账。比如:原材料-XXX,是MM模块自动过账,就须勾上。

I、Edit cost element

如果会计科目是P&L科目,如果在定义COA时,确定手工建立cost element,则可通过此按钮建立cost elemement(也可在controlling模块用Tcode: KA01创建)。如果是自动建立cost element,则不需管它。

J、工具按钮

按钮分别为:1) Display 显示2) Change 更改3) Create 建立4) Create with Template: 用模板建立5) Block for posting 锁定过账6) Mark for deletion 标记删除

删除的科目仍然可用,系统只是给出一个警告信息。如果想锁定过账,请用Block功能。

K、创建会计科目

9、维护会计年度变式和记账期间

①、概念理解

会计分期是核算的前提之一,SAP系统自然也要进行设置。系统有关会计期间的主要内容如下:

1. Define fiscal year variant

2. Assign company code to fiscal year variant

3. Define accounting periods variant

4. Assign posting period variant to company code

5. Open and close accounting periods

会计年度,按我国会计制度,一定要从日历年度(calendar year)的1月1日到12月31日,但西方会计制度就没有这一限制,因此fiscal year可能各不相同。英国和香港公司就很流行4月1日到3月31日为一个fiscal year。

SAP系统允许设置12个positng periods以及最多4个special periods。Posting period 是用来作日常过账之用的,special periods是用来作年结(year-end)调整之用的。但要4个期间有什么用呢,主要是为了增加灵活性。比如将公司自已的调整记入13期间,将审计师的调整记入14期间,这样,财务报表可以有不同的版本

10、会计凭证

①、概念理解

会计凭证(FI document)是SAP系统在FI模块中记载一项经济交易的最小单位。系统需要根据company code, fiscal year以及document number.三项才能唯一标识一个会计凭证。根据系统设置,同一company code在不同的会计年度中,可以生成完全相同的凭证号码。我觉得,最好不要在每一年用相同的文件号码,这种做法有时会给用户带来混淆。

会计凭证的知识点主要有两个:

Document type

Posting key

A.Document type

Document type区分不同性质的交易,如传统上我国会计凭证按收、付、转进行分类。SAP 系统提供更多的默认类别,你也可增加新的类别。Document type主要实现以下方面的控制:

a、每一类别可以规定一个凭证号码范围(document number range)

每一种凭证类型都可以设定是系统生成号码(internal numbering),还是用户手工给号码(external numbering),一般情况下,这些号码是基于fiscal year的。可能在一个会计年度中从4900000000直至4999999999。第二年又重新开始。因为号码的前两位是类别标识,我一般建议将3、4两位设为会计年度,以避免不同年度有相同的号码。因此,上面49类型的号码范围可改进为:在2008年度,号码从4908000000至4908999999,在2009年度,号码从4909000000至4909999999。

很多企业都想让会计凭证按月份编号,不幸的是,标准SAP系统做不到。如果真想这样,只有采取将编号设为external numbering,然后由ABAPer编写程序生成相应号码。

b、规定document type允许过账的交易类型。

系统已定义好大量的凭证类别,如SA,AB,KZ,RE,RV等。AB类型允许所有过账种类,而其它类别则都有限制。

c、规定document header诸如Reference, text等栏位的状态。如,vendor invoice的Reference栏位为必输字段。

d、方便对会计凭证的归档(document filing)。

B、 Posting key (PK)

会计凭证只需借贷就可完全确定方向,但SAP系统将此延伸,提出posting key的概念,通过一个过账码,既可以确定记账方向,又可以看出科目类型,还可以在既定规则下看出交易类型。

请看下图

SAP系统区分五种不同类型的科目:Customer, Vendor, G/L, Asset, Materials。如果是

总账科目,借方用40,贷方用50,如果是固定资产,借方用70,贷方用75。对照此图,应该不难理解上面所说的对科目类别,借贷方向以及交易类型的识别和控制。

②、相关事务码及截图

点击

重要字段说明

---将使用凭证号码范围,该类别的号码码范围可按下右

边按钮进行设置,或通过下一步骤设置,我们将在

下一步骤再设置。

---如果出现回转(reverse),将使用AB凭证类别。

---允许过账的科目类别。

---是否Reference字段和header text字段必输。点击

点击

按下

点击11、总账容差 ①概念理解

G/L,

AP, AR 都会用到clearing (结算)的概念,配置方法也差不多。这次先说G/L 的clearing 配置。

如果没有定义总账的tolerance group ,则系统不允许处理open item clearing (项目结算)。 限制不同group 之中,一张凭证可以输入的最大金额,允许的现金折扣额等。将group 再分配给不同的用户,可以实金额控制。

相关事务码及截图

过程临时替代方法管理规定

过程临时替代方法管理规定

1、 目的/Purpose: 对替代方法进行识别和风险管理,确保产品发运及追溯。 2、适用范围/Range: 适用于********有限公司替代方法的过程和产品。 3、定义/Terms : 无 4 、职责/Responsibility: 4.1技术部是本规定的归口责任部门。 4.2技术部负责CP 中替代方法的制定与管控,组织对替代方法风险的识别和评价。 4.3制造部负责负责替代方法的实施和日常监控. 5、工作程序/Work Procedure:

Step Owner Flow Description 1 技术部1. 技术部识别可替代方法,按过程流程图顺序列出替代方法清单,包括: —检验 —测量 —试验 —防错 —操作,如自动改手动 如,光滑通止规使用内径量表替代。 2 技术部 质量保证部 1. 技术部组织质量保证部、制造部进行可替代方法评审,包括替代方法的接受准则; 2. 对确定纳入的替代方法在FMEA中单独一行识别其风险,进行RPN风险评价; 3. 技术部输入CP中/或单独的过程替代方法识表,PPAP阶段提交顾客批准; 4. 如果客户有替代方法,沟通评审后更新CP及接受准则,接受准则客户有要求时,按 客户要求; 5. 每年度CP评审时,对CP中的替代方法进行评审/或升级,更新时,重新提交CP客 户批准。 备注:替代方法的测量系统分析见《MSA分析管理规定》。 3 技术部 质量保证部 制造部 1. 当正常检验方法失效时,启用替代方法,并由质量保证部通知客户: —替代方法检验的产品断点标识; —断点批次; —发运包装标识。 2. 当过程替代时,执行《变更控制过程文件》。 4 技术部质量 保证部制造 部 1. 技术部编制每个/类替代方法的操作指导书,并培训使用者,包含以下内容: —使用说明; —产品断点标识; —发货包装标识; —每日点检方法; —重启验证方法。 2. 现场变化管理看板/变更卡片中记录测量变更点,并班前会培训; 3. 变更标识:变更工位挂变更标识; 4. 变更跟踪:首末件检验并记录,记录中备注替代方法; 5. 点检:采用以下任一种方式进行替代方法点检: —每日量具点检记录 6. 可疑产品处置:按照《不合格控制过程文件》执行。 5 技术部 质量保证部 1. 技术部、质量保证部组织按操作指导书要求重启原先检验方法, —进行首末件检测; —对于连续缺陷重启时,连续检查5件; —间歇性缺陷重启时,阶段时间内100%检查。 2. 特殊特性执行SPC监控; 3. 必要时,量具管理员重新进行MSA,按《MSA分析管理规定》执行。 6 技术部 业务部 1. 制造部记录替代方法检验产品的发货批次、二维码、托盘号等; 2. 业务部通知客户发货标识; 3. 客户端记录装配总成情况; 按《产品标识和可追溯性过程文件》执行。

ODBC的接口函数

ODBC的接口函数 1.连接到数据源 下面的函数用于连接到数据源: (1)SQLAllocHandle:分配环境、连接、语句或者描述符句柄。(2)SQLConnect:建立与驱动程序或者数据源的连接。访问数据源的连接句柄包含了包括状态、事务申明和错误信息的所有连接信息。(3)SQLDriverConnect:与SQLConnect相似,用来连接到驱动程序或者数据源。但它比SQLConnect支持数据源更多的连接信息,它提供了一个对话框来提示用户设置所有的连接信息以及系统信息表没有定义的数据源。 (4)SQLBrowseConnect:支持一种交互方法来检索或者列出连接数据源所需要的属性和属性值。每次调用函数可以获取一个连接属性字符串,当检索完所有的属性值,就建立起与数据源的连接,并且返回完整的连接字符串,否则提示缺少的连接属性信息,用户根据此信息重新输入连接属性值再次调用此函数进行连接。 2.获取驱动程序和数据源信息 下面的函数用来获取驱动程序和数据源信息: (1)SQLDataSources:能够被调用多次来获取应用程序使用的所有数据源的名字。 (2)SQLDrivers:返回所有安装过的驱动程序清单,包括对它们的描述以及属性关键字。 (3)SQLGetInfo:返回连接的驱动程序和数据源的元信息。

(4)SQLGetFunctions:返回指定的驱动程序是否支持某个特定函数的信息。 (5)SQLGetTypeInfo:返回指定的数据源支持的数据类型的信息。 3.设置或者获取驱动程序属性 下面的函数用来设置或者获取驱动程序属性: (1)SQLSetConnectAttr:设置连接属性值。 (2)SQLGetConnectAttr:返回连接属性值。 (3)SQLSetEnvAttr:设置环境属性值。 (4)SQLGetEnvAttr:返回环境属性值。 (5)SQLSetStmtAttr:设置语句属性值。 (6)SQLGetStmtAttr:返回语句属性值。 4.设置或者获取描述符字段 下面的函数用来设置或者获取描述符字段: (1)SQLGetDescField:返回单个描述符字段的值。 (2)SQLGetDescRec:返回当前描述符记录的多个字段的值。(3)SQLSetDescField:设置单个描述符字段的值。 (4)SQLSetDescRec:设置描述符记录的多个字段。 5.准备SQL语句 下面的函数用来准备SQL语句: (1)SQLPrepare:准备要执行的SQL语句。 (2)SQLBindParameter:在SQL语句中分配参数的缓冲区。 (3)SQLGetCursorName:返回与语句句柄相关的游标名称。

sap替代方式说明

SAP中BOM组件替代方式: 1、当物料A用完后(即库存数量为0),对于物料A将永远不再使用,且使用物料B替 代物料A; 2.、在某个产品中,在某个日期后,当物料A不够时,才使用物料B,该日期之前物料A 不够用,只对物料A产生需求; 3、多种物料之间存在用完为止的替代关系,且存在较明显的优先级关系,替换料用量 可不一致;需由物料计划部门控制替代料的优先级。 4、多种物料之间存在替代关系,用量可不一致,各替代物料间无明显优先级关系,需 按一定比率将需求传递到各替代组件;需有物料计划部门控制替代料使用可能性。 5、匹套替换,A与A1配套,B与B1配套,当A不够时,由B进行替代,此时A1也必 须由B1替代,即B+B1替代A+A1; (注意:只有在执行可用性检查后,才可触发替代) BOM组件替代实现方式: 一、替代需求:当物料A用完后,即库存数量为0,将永远不再使用,且使用物料B替代物 料A; 适用范围:两种物料之间存在替代关系,且用量相等,用完替代。 影响范围:所有BOM中该组件A用完时,都将被物料B替换 业务场景:用完替代,物料A用完之后才使用B物料(系统执行可用性检查,当A用完后系统才考虑B物料库存,当两者库存总量无法满足需求时,系统将给出物料B缺料提醒) 实现方式与测试: 1.建立物料A与物料B之间的替代关系,MM02 MRP4视图

2.替换测试: CO01 创建生产订单(生产订单30PC,物料A库存为10PC,物料B库存为10PC);,系统给出物料B缺料10PC提醒

CO11N 完工确认 注意:此方法只适用于两种物料用完替代,且A、B物料用量相等。 二、替代需求:在某个产品中,在某一日期后,如果物料A不够时,用完物料A后,使用物 料B,在该日期之前物料A不够用仍然对物料A产生需求。 适用范围:两种物料之间存在替代关系,且用量相等,在某一日期后该替代关系生效。

输入法接口函数说明

输入法编程(转贴)(快看) IME输入法编程 第一章Windows9x系统下汉字输入法的基本原理 Windows系统下汉字输入法实际上是将输入的标准ascii字符串按照一定的编码规则转换为汉字或汉字串,进入到目的地。由于应用程序各不相同,用户不可能自己去设计转换程序,因此,汉字输入自然而然落到WINDOWS系统管理中。 一、输入法与系统的关系 键盘事件应用程序 || Windows的USER.EXE | 输入法管理器 | 输入法 系统的键盘事件有windows的user.exe软件接收后,user.exe在将键盘事件传导输入法管理器(Input Method Manager,简称IMM)中,管理器再将键盘事件传到输入法中,输入法根据用户编码字典,翻译键盘事件为对应的汉字(或汉字串),然后再反传到user.exe 中,user.exe再将翻译后的键盘事件传给当前正运行的应用程序,从而完成汉字的输入。 二、汉字输入法的组成 微软Windows9x系统中汉字输入法的名称是"Input Method Editor " ,简称IME,输入法的程序名称为:*.ime,数据文件名称为*.MB,即通常说的输入法编码表(字典). 实际上IME文件是一个动态连接库程序(DLL),它与dll文件没有区别,只是名称不同而已。 一般汉字输入法都由三个窗口组成: 状态窗口(Status Windows)-显示当前的输入法状态(中文还是英文等站环信息); 编码输入窗口(Composition Windows)-显示当前击键情况; 汉字选择窗口(Candidates Windows)-列出当前编码的全部汉字(串),供用户选择或查询。 上述三个窗口由基本的用户接口(User Interface )函数管理着。 现在我们用Dumpbin.exe打开微软提供的拼音输入法(WINDOWS\SYSTEM\WINPY.IME)看看它有什么组成(这里一WINDOWS98为例,并假定windows系统安装在c:盘下):

替代物方法的改进

PAHs定量测定参考下述文献:“李权龙,袁东星,陈猛. 替代物和内标物在环境样品分析中的作用与应用[J]. 海洋环境科学,2002,21(4):46-49”,我们根据实际情况又进行改进,我们要检测水样中120多种有机物,水样测定时并没有每种物质都买替代物,对于PAHs这类物质只加入萘-D8、苣-D12、二萘嵌苯-D12等3种替代物。具体操作:(1)通过GC-MS测定各物质的正己烷标样,得到替代物与目标物的响应因子。(2)在模拟水样中加入目标物,通过5个平行样测定SPE过程的绝对回收率,即2L水样中加入的目标物后,经过富集最后多少量转移至0.5mL的浓缩液。测得PAHs的回收率53.6%-87.2%。(3)实际水样测定时,在每个水样中加入100ng/L的替代物,经历与水样相同的富集过程。(4)利用公式C x=A x C su Rec su/(RRF x/su A su Rec x)来计算出目标物的浓度。公式中A x为未知样品中目标物的峰面积;C su为替代物的浓度,为100ng/L;Rec su为替代物的回收率;RRF x/su为目标物与替代物的相对响应因子;A su为替代物的峰面积;Rec x 为目标物的回收率。对于有替代物的物质,如萘-D8就是萘的回收率,公式就可以简化为:C x=A x C su/(RRF x/su A su)。 尽可能购买合适的替代物是质控和质保一个重要方面,同时我们在测试过程中每批次试剂均分析试剂空白;每分析一批样品至少做一个空白进行校正;仪器每12小时做一次溶剂空白,检查仪器的污染状况。这在修改稿中进行补充。 由于在水样中加入替代物萘-D8,萘的测定应该是比较准确的。替代物可以尽最大限度校正SPE柱子富集性能差异、实验过程定容不准确、GC-MS峰面积发生变化等问题。 所研究地区的农村饮用水源主要取自深层地下水,过滤过程中发现深层地下水中颗粒物并不多,通过饮用水进入人体的可能还是水相中的PAHs。当然,没有检测颗粒态中PAHs是一个缺憾。

LWIP接口函数的文档

Lwip 协议栈的设计与实现 (中文版) Swedish Institute of Computer Science February 20, 2001 作者:Adam Dunkels adam@sics.se 翻译:果农(QQ:10205001) 核桃(QQ:329147) 佳旭(QQ:3232253) 整理:佳旭(QQ:3232253) 本文为QQ群ARM TCPIP LCD(群号:10988210)版权所有未经作者许可不得用于商业用途 摘要

LWIP是TCP/IP协议栈的一种实现。LWIP的主要目的是减少存储器利用量和代码尺寸,使LWIP适合应用于小的、资源有限的处理器如嵌入式系统。为了减少处理器和存储器要求,lwIP 可以通过不需任何数据拷贝的API进行裁减。 本文叙述了lwIP的设计与实现。叙述了协议实现及子系统中所使用的算法和数据结构如存储和缓冲管理系统。还包括LWIP API的参考手册和使用LWIP 的一些代码例子。 目录 1 Introduction (1) 2 Protocol layering (1) 3 Overview (2) 4 Process model (2) 5 The operating system emulation layer (3) 6 Buffer and memory management...................................................................... (3) 6.1 Packet buffers -pbufs (3) 6.2 Memory management (5) 7 Network interfaces........................................................................................ .. (5) 8 IP processing (7) 8.1 Receiving packets (7) 8.2 Sending packets (7) 8.3 Forwarding packets (8) 8.4 ICMP processing (8) 9 UDP processing............................................................................................ (8) 10 TCP processing.......................................................................................... (9) 10.1 Overview (9) 10.2 Data structures (10)

接口功能大全

接口功能简介 在平板电视市场高速发展的同时,电视背部接口也引起了消费者的广泛关注。作为数字电视,现在不仅仅是用来观看电视,很多用户都开始用它与数码相机、硬盘、电脑、微软Xbox 360、索尼的PS3和任天堂Wii游戏机等设备进行链接,这时对接口就有一些要求,像HDMI接口、USB接口都成为了高清平板电视的主流接口。到底哪些为目前液晶、等离子电视的必备接口呢?下面笔者就从必备、使用、可选、趋势四大方面对接口进行了简单解析,一起来看看吧。 平板电视四大类接口详解 四大类接口 ● 必备接口: ·HDMI接口:是最新的高清数字音视频接口,收看高清节目,只有在HDMI通道下,才能达到最佳的效果,是高清平板电视必须具有的基本接口。 ·DVI接口:是数字传输的视频接口,可将数字信号不加转换地直接传输到显示器中。

·色差分量接口:是目前各种视频输出接口中较好的一种。 ·AV接口:AV接口实现了音频和视频的分离传输,避免了因音/视频混合干扰而导致的图像质量下降。 ·RF输入接口:是接收电视信号的射频接口,将视频和音频信号相混合编码输出,会导致信号互相干扰,画质输出质量是所有接口中最差的。 ● 实用接口: ·光纤接口:使用这种接口的平板电视不通过功放就可以直接将音频连接到音箱上,是目前最先进的音频输出接口。 ·RS-232接口:是计算机上的通讯接口之一,用于调制解调器、打印机或者鼠标等外部设备连接。带此接口的电视可以通过这个接口对电视内部的软件进行维护和升级。 ·VGA接口:是源于电脑显卡上的接口,显卡都带此种接口。VGA就是将模拟信号传输到显示器的接口。 ·S端子:是AV端子的改革,在信号传输方面不再对色度与亮度混合传输,这样就避免了设备内信号干扰而产生的图像失真,能够有效地提高画质的清晰程度。 ● 可选接口: ·USB接口:是目前使用较多的多媒体辅助接口,可以连接U盘、移动硬盘等设备。 ·蓝牙接口:是一种短距的无线通讯技术,不需要链接实现了无线听音乐,无线看电视。·耳机接口:使用电视无线耳机可在电视静音的情况下,自由欣赏精彩节目。 ● 趋势接口: ·DisplayPort接口:可提供的带宽就高达10.8Gb/s,也允许音频与视频信号共用一条线缆传输,支持多种高质量数字音频。 ● 必备接口:什么是HDMI接口?

对等交换:一种理性的替代方法

简化复杂的决策由简化替代过程开始。 对等交换: 约翰·S·哈蒙德, 拉尔夫·L·奇尼,和霍华德·瑞弗 有些决策是很容易制定的。如果你希望尽可能便宜地从纽约飞往旧金山,你只需找到费用最低的航班,然后买一张机票就可以了。你只有一个单独的目标,所以你只需进行一组比 较。但是,正如所有的决策制定者所知,只有一个目标的决策是罕见的奢侈品。通一种理 性的替代方法常,你会同时追求许多不同的目标。是的,你想要较低的价格,但是你也 想要方便的起飞时间,直达的航班,一个靠过道的座位,一个有很好的安全飞行记录的航班,而且你希望在一个你已有的帐户中积累经常性的飞行距离。现在这个决策变得非常复杂了,你不得不进行替代。 进行明智的替代是决策制定过程中最重要和困难的挑战之一。你考虑的选择越多,追求的目标越多,你需要进行的替代就越多。但是,单纯的替代次数并不是使决策变得如此艰难的原因,问题在于每种目标都有自己的比较基础。对于一种目标,你可能使用准确的数字或者比例来比较各种选择:34%、38%、53%。对于另一种目标,你可能需要进行更宽泛的判断:高、低、中等。对于另外一种,你可能使用纯描述性的标准来比较:黄色、橙色、蓝色。你不仅仅是在同类事物之间进行替代;而是在差别迥异的事物之间进行替代。 在比较如此分散的事物时,你如何进行替代?在过去,决策制定者们主要依靠直觉、常识和猜测;他们缺少一种清楚、理性和容易操作的替代方法。为了填补这个空白,我们创立了一个体系——我们把它称为对等交换——提供了一种在各种目标体系和选择中进行替代的实践方法。从本质上说,对等交换的方法是一种讨价还价的形式——它强迫你去根据另一种目标来思考某种目标的价值。例如:你愿意牺牲多少经常性的飞行距离数来换取机票价格上50美元的减少?你愿意耽搁多少起飞时间来确保一个靠过道的座位?一旦你做出了这种价值判断,你就可以了解各种不同的衡量体系的重要性了。你可以在一个可靠的、一致的的基础上进行明智的替代。 对等交换方法也不能使复杂的决策变得更容易;你仍将不得不在你确定的价值和进行的交易基础上做出困难的选择。它提供的是一种可靠的交易机制和一个可以在其中进行交易的一致的框架。通过简化和整理替代中的程序化因素,对等交换方法使你可以把所有的精力都集中在决策制定中最重要的工作上:决定各种选择对你和你的组织的实际的价值。 绘制一份重要性表格 在你进行替代之前,你需要清楚地了解所有的选择和对于你的每种目标来说它们的重要性如何。了解这些的一种很好的方式就是绘制一份重要性表格。使用铅笔和纸张或者电脑的电子数据表格,在页面的左侧列出你的目标,在顶部列出你的选项,这样就得到了一个空白的矩阵。在矩阵的每一个单元格内,写下对于指定目标(由行来显示)来说某种选择(由列来显示)的重要性的准确描述。你也许使用数量标准,如:数字来描述某些重要性,而用质量标准,如:语言来描述其它的。重要的是要使用统一的术语来描述某一给定目标下的所有的重要性;也就是说,在每一行中使用统一的标准。如果不是这样,你将无法在各种目标之间做出理性的替代。 为了说明重要性表格实际上是什么样子,让我们考察由一位年轻人——文森特·萨德建立的一份表格。一名鳏夫的唯一的孩子——文森特计划从学校抽出一部分时间,来帮助他的

http接口说明

一、查询菜品列表接口(DONE) 1、功能说明 接受提供的菜品 XXX画面XXX功能(比如人口查询画面-查询| 人口查询画面-详细等)2、接口调用说明 2.1获取地址 2.2http请求方式 GET 2.3数据返回格式 JSON 2.4传递参数

2.5成功返回结果 [ “serverResponse”:”Success”, “totalRecords”:”52”, “page” : “10”, “pageSize” : “5”, “data”:{ “id” : “123”, “itemName” : “皇堡”, “priceNow” : “10”, “pricePast” : “12”, “servicePicture” :”s9118668.jpg”, “serviceStars” : “3” }, ……. { “id” : “”, “itemName” : “”, “priceNow” : “”, “pricePast” : “”, “servicePicture” :” s9118668.jpg”, “serviceStars” : “3” } ] 2.6返回结果解释

二、查询广告接口(DONE) 1、功能说明 接受广告图片,目前为一张 2、接口调用说明 2.1获取地址 2.2http请求方式 GET 2.3数据返回格式 JSON 2.4传递参数

2.5成功返回结果 { "serverResponse":"Success", “advertisePicture” : “0f736a68b929b0955b319ebc41336.jpg”} 2.6返回结果解释 三、查询订单列表接口(DONE) 1、功能说明 根据指定的客户id查询订单 2、接口调用说明 2.1获取地址 2.2http请求方式 GET 2.3数据返回格式 JSON

CAN应用接口函数

CAN应用接口函数库使用手册V1.0

目录 1.接口卡设备类型定义 (3) 2.错误码定义 (4) 3.函数库中的数据结构定义 (5) 3.1.VCI_BOARD_INFO (5) 3.2.VCI_CAN_OBJ (6) 3.3.VCI_CAN_STATUS (7) 3.4.VCI_ERR_INFO (8) 3.5.VCI_INIT_CONFIG (9) 3.6.VCI_RxAcptMask (10) 3.7.VCI_RxAcptFilter (11) 4.接口库函数说明 (12) 4.1.FD_OpenDevice (12) 4.2.FD_CloseDevice (13) 4.3.FD_InitCan (14) 4.4.FD_ReadBoardInfo (15) 4.5.FD_GetReceiveNum (16) 4.6.FD_ClearBuffer (17) 4.7.FD_StartCAN (18) 4.8.FD_ResetCAN (19) 4.9.FD_Transmit (20) 4.10.FD_Receive (21) 4.11.FD_RxAcptMaskInit (22) 4.12.FD_DisableRxAcptFilter (23) 4.13.FD_RxAcptFilterInit (24) 4.13.FD_SetOperationMode (25) 5.接口库函数使用方法 (26) 5.1.VC调用动态库的方法 (26) 5.2.VB调用动态库的方法 (26)

1.接口卡设备类型定义 各个接口卡的类型定义如下: 设备名称设备类型号备注 USBCAN11第一代USBCAN USBCAN22第二代USBCAN CAN2323待开发PCICAN4待开发

接口清单说明

获取当前登录用户待办、已办工作流列表。 方法: class getWorkFlowList(String userName,String type,int beginIndex,int endIndex) 参数说明: userName:用户名 Type:获取工作流类型1:待办2:已办3:传阅消息 beginIndex:查询开始行 endIndex:查询结束行 输出说明: 获取当前登录用户可以发起的流程的列表。 以当前用户发起并提交一个流程。 方法: class submitBillFlow(String userName,String billId) 参数说明: UserName:提交用户名 billId:单据ID

流程传阅接口。 方法: class circulatedFlow(String assignId,String personId,String msg) 参数说明: assignId:任务ID,可通过待办、已办列表获取 personId:传阅人ID,支持多人ID用;隔开 Msg:传阅意见 流程传阅反馈(接收到传阅消息可提出意见提交反馈结果) 方法: class sendPassCommen(String billId,String procinstId,String personName ,String msg) 参数说明: billId:单据ID,可通过传阅列表获取 procinstId:流程实例,可通过传阅信息列表获取 personName :传阅发起人,可通过传阅列表获取 Msg:传阅反馈意见 获取传阅意见(通过流程实例)。 方法: class gegtCirculatedMsg(String procinstId) 参数说明: procinstId:流程实例ID,可通过待办、已办列表获取 输出说明:

DLL函数接口说明

typedef void __stdcall (*fun_AddResult)(char pDataStr[10][255],double pDataDouble[100]); extern "C" void __declspec(dllimport) __stdcall SetBackColor(TColor pBkColor); extern "C" void __declspec(dllimport) __stdcall FanSelect( void *pSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSeriesNameCount,//系列名称个数,-1时表示全部选择 void *pSubSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSubSeriesNameCount,//子系列名称个数,-1时表示全部选择 const double &pFlow, //风量 const int &pFlowUnitType, //风量单位类型0-m^3/h 1-m^3/s 2-l/s 3-cfm const double &pPres, //风压 const int &pPresUnitType, //风压单位类型0-Pa 1-mmH2O 2-kgf/cm^2 3-inH2O const int &pPresType, //风压类型0-全压1-静压 const int &pOutFanType,//出风方式0-管道出风1-自由出风 const double &pAirDensity,//空气密度 const double &pMotorSafeCoff,//电机容量安全系数(%) const bool &pUserSetMotorSafeCoff,//用户设定了电机容量安全系数 double &rFlow_STDUnit,//标准单位下的风量 fun_AddResult pAddResult//函数指针,用于回传数据 ); extern "C" void __declspec(dllimport) __stdcall Belt_Selection( const char *pSeriesName, const char *pSubTypeName, const char *pModelName, const int &pSped_DataType,//电机转速类型0-标准数据1-用户数据默认为0(界面选择) const int &pHz_DataType,//频率选择0-50HZ 1-60HZ(界面选择) const int &pRotation,//出风旋转角度R0,R90,R180,R270(参考常量定义) const double &pFanSped,//风机转速(第一步计算得到) const double &pMotorPow,//电机功率(第一步计算得到) const double &pFlow_STDUnit,//标准单位下的风量 const double &pTPres,//全压(第一步计算得到) const double &pSPres,//静压(第一步计算得到) const double &pFTEff,//全压内效率(第一步计算得到) const double &pSdbA,//噪声(第一步计算得到) const int &pV olt,//用户选择的电压(参考电压常量声明V380 V400) , bool pPole[4],//用户选择的极数2,4,6,8 bool pBeltType[4],//用户选择的皮带类型SPZ SPA SPB SPC const bool &pBeSetFanSped,//用户设定了风机转速 const double &pFanSpedRt_User,//用户设定的风机转速差 const bool &pBeSetBeltMoveSped,//用户设定最大皮带运动速度 const double &pBeltMoveSped_User,//用户设定的最大皮带运动速度

临时替代方法管理办法

1目的 为控制替代方法及临时变更可能对顾客造成的风险,确保替代方法及临时变更风险得到有效控制。 2范围 适用于制造过程设计输入中可替代的制造技术。 3定义 3.1临时替代方法:替代原检验试验、过程测量、防错装置、生产设备和工装模具,但 最终返回原控制状态。 4职责 4.1技术部在项目开发期内,按照项目开发流程及APQP要求,监督相关部门识别过程 替代,形成《过程控制临时替代变更清单》并实施。并编制《替代方法PFMEA》、 《替代方法控制计划》。 4.2制造部负责替代方法的实施和日常监控。 5工作程序 5.1识别技术方案及制造技术替代方法 5.1.1当开发项目进入“制造过程设计输入阶段”后,由技术部识别检验试验、过 程测量、防错装置、生产设备和工装模具等存在哪些替代需要的可能,并编制 《过程控制临时替代变更清单》。 5.1.2《过程控制方法临时变更清单》应包括:过程工序名称、替代方法类别,替 代前方法、替代后方法。 5.1.3技术部根据《过程控制方法临时变更清单》及基于风险分析(FMEA)的方法, 编制《替代方法PFMEA》。 5.1.4根据《替代方法PFMEA》,编制《替代方法控制计划》。 5.2过程控制方法的临时更改与实施 5.2.1当过程控制方法需临时变更启动替代方法时,应由需求部门填写《过程控制 方法临时变更申请表》,经部门批准后实施。 5.2.2在实施临时变更期间,制造部应按《替代方法每日评审记录》要求,进行每 日评审、确认替代方法的符合性、有效性。 5.2.3临时变更期间,产品及替代方法应具备可追溯性,应记录检验试验、过程测

量、防错装置、生产设备、工装模具等替代方法,及产品批次、数量等相关信 息。 5.3返回原过程控制方法 5.3.1制造部在返回原过程控制方法时,应由质量科对原过程控制方法的结果进行 确认,当原过程控制方法及产品符合规定的要求时,才能返回原过程控制方法。 5.4过程控制替代方法批准 5.4.1变更的替代方法当顾客有要求时,应获得顾客批准。 5.4.2制造部每年评审《过程控制方法临时变更清单》、《替代方法控制计划》、 《替代方法作业指导书》的有效性和适宜性。 6相关文件 《变更点管理规程》 7质量记录 过程控制临时替代变更清单 过程控制方法临时变更申请 替代方法每日评审记录

http接口说明模板

http接口说明模板

一、查询菜品列表接口(DONE) 1、功能说明 接受提供的菜品 XXX画面XXX功能(比如人口查询画面-查询 | 人口查询画面-详细等) 2、接口调用说明 2.1获取地址 http://192.168.0.6:8080/FamilyServiceSystem/BookDinnerQueryAction?op eration=queryServiceItem 2.2http请求方式 GET 2.3数据返回格式 JSON 2.4传递参数 类型示例描述 参数名称是否 必须 page 是String 1 获取第几个分页的菜 品,默认第一个分页 为1

pageSize 是String 5 每页显示多少个菜 品,默认为5 isFood 是String true 查询食物还是饮料, 查询食物为true 饮料为false 饮料和食物为空 2.5成功返回结果 [ “serverResponse”:”Success”, “totalRecords”:”52”, “page” : “10”, “pageSize” : “5”, “data”:{ “id” : “123”, “itemName” : “皇堡”, “priceNow” : “10”, “pricePast” : “12”, “servicePicture” :”s9118668.jpg”, “serviceStars” : “3” }, ……. { “id” : “”, “itemName” : “”,

“priceNow” : “”, “pricePast” : “”, “servicePicture” :” s9118668.jpg”, “serviceStars” : “3” } ] 2.6返回结果解释 参数名称类型描述备注 page String 当前返回的 是第几页 id Int 菜品编号itemName String 菜品名字priceNow String 现价 pricePast String 原价servicePicture String 菜品图片 serviceStars String 菜品星级

Arduino常用函数精编版

(1)pinMode(接口名称,OUTPUT或INPUT),将指定的接口定义为输入或输出接口,用在setup()函数里。 (2)digitalWrite(接口名称,HIGH(高)或LOW(低)),将数字输入输出接口的数值置高或置低。 (3)digitalRead(接口名称),读出数字接口的值,并将该值作为返回值。 (4)analogWrite(接口名称,数值),给一个模拟接口写入模拟值(PWM脉冲)。数值取值0-255。 (5)analogRead(接口名称),从指定的模拟接口读取数值,Arduino对该模拟值进行数字转换,这个方法将输入的0~5V电压值 转换为0~1023间的整数值,并将该整数值作为返回值。 (6)delay(时间),延时一段时间,以毫秒为单位,如1000为1秒。 (7)Serial.begin(波特率),设置串行每秒传输数据的速率(波特率)。在与计算机进行通讯时,可以使用下面这些值:300、1200、2400、4800、9600、14400、19200、28800、38400、57600或115200,一般9600、57600和115200比较常见。除此之外还可以使用其他需要的特定数值,如与0号或1号引脚通信就需要特殊的波特率。该函数用在setup()函数里。 Serial.available() 的意思是:返回串口缓冲区中当前剩余的字符个数。一般用这个函数来判断串口的缓冲区有无数据,当Serial.available()>0时,说明串口接收到了数据,可以读取;

Serial.read()指从串口的缓冲区取出并读取一个Byte的数据,比如有设备通过串口向Arduino发送数据了,我们就可以用Serial.read()来读取发送的数据。 while(Serial.available()>0) { data= Serial.read(); delay(2); } (8)Serial.read(),读取串行端口中持续输入的数据,并将读入的数据作为返回值。 (9)Serial.print(数据,数据的进制),从串行端口输出数据。Serial.print(数据)默认为十进制,相当于Serial.print(数据,十进制)。 (10)Serial.println(数据,数据的进制),从串行端口输出数据,有所不同的是输出数据后跟随一个回车和一个换行符。但是该函数所输出的值与Serial.print()一样。 常用函数 数字I/O类: pinMode(pin,mode)数字IO口输入输出模式定义函数,将接口定义为输入或输出接口。

Openssl函数接口介绍

Openssl有关大数运算函数接口介绍 主要介绍Openssl中的有关大数运算函数,这个对于以后的RSA研究和实现比较有价值 1.初始化函数 BIGNUM *BN_new(void); 新生成一个BIGNUM结构 void BN_free(BIGNUM *a); 释放一个BIGNUM结构,释放完后a=NULL; void BN_init(BIGNUM *); 初始化所有项均为0,一般为BN_ init(&c) void BN_clear(BIGNUM *a); 将a中所有项均赋值为0,但是内存并没有释放void BN_clear_free(BIGNUM *a); 相当与将BN_free和BN_clear综合,要不就赋值0,要不就释放空间。 2.上下文情景函数,存储计算中的中间过程 BN_CTX *BN_CTX_new(void);申请一个新的上下文结构 void BN_CTX_init(BN_CTX *c);将所有的项赋值为0,一般BN_CTX_init(&c) void BN_CTX_free(BN_CTX *c);释放上下文结构,释放完后c=NULL; 3.复制以及交换函数 BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b);将b复制给a,正确返回a,错误返回NULL BIGNUM *BN_dup(const BIGNUM *a);新建一个BIGNUM结构,将a复制给新建结构返回,错误返回NULL BIGNUM *BN_swap(BIGNUM *a, BIGNUM *b);交换a,b

4.取位函数 int BN_num_bytes(const BIGNUM *a);返回a的位数,大量使用 int BN_num_bits(const BIGNUM *a); int BN_num_bits_word(BN_ULONG w);他返回有意义比特的位数,例如0x00000432 为11。 5.基本计算函数 int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);r=a+b int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);r=a-b int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx);r=a*b int BN_sqr(BIGNUM *r, BIGNUM *a, BN_CTX *ctx);r=a*a,效率高于 bn_mul(r,a,a) int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *a, const BIGNUM *d, BN_CTX *ctx);d=a/b,r=a%b int BN_mod(BIGNUM *rem, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx);r=a%b int BN_nnmod(BIGNUM *rem, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx);r=abs(a%b) int BN_mod_add(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx);r=abs((a+b)%m)) int BN_mod_sub(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); r=abs((a-b)%m)) int BN_mod_mul(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); r=abs((a*b)%m)) int BN_mod_sqr(BIGNUM *ret, BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); r=abs((a*a)%m)) int BN_exp(BIGNUM *r, BIGNUM *a, BIGNUM *p, BN_CTX *ctx);r=pow(a,p) int BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx); r=pow(a,p)%M int BN_gcd(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx);r=a,b最大公约数 int BN_add_word(BIGNUM *a, BN_ULONG w); int BN_sub_word(BIGNUM *a, BN_ULONG w); int BN_mul_word(BIGNUM *a, BN_ULONG w);

CYAPI函数简介

主机初始化模块用到了Cypress 的开发包中的类,因此需要在头文件部分添加库文件CyAPI.h、CyAPI.lib 和cyioctl.h 与功能代码一起进行编译,将这三个文件加载到项目中,主要代码如下: #include "CyAPI.h" #include "cyioctl.h" 头文件中还需要定义以下全局变量:USBDevice 为USB 设备,InEndpt、OutEndpt 为USB 端点,ReadThread、WriteThread 为线程定义,ReadThreadLooping、WriteThreadLooping 为线程控制变量、ept 为控制端点, 主要代码如下: CCyUSBDevice *USBDevice; //定义USB 设备 CCyUSBEndPoint *InEndpt; //定义输入USB 端点 CCyUSBEndPoint *OutEndpt; //定义输出USB 端点 CWinThread *ReadThread; //数据采集线程 CWinThread *WriteThread; //波形发生线程 BOOL ReadThreadLooping; //数据采集线程循环标志 BOOL WriteThreadLooping; //波形发生线程循环标志 CCyControlEndPoint *ept; //定义USB 控制端点 CyAPI函数库 CyApl控制函数类为EZ-USBFXZLP系列USB2.0接口芯片提供了方便和完善的控制接口。在使用CyPress提供的驱动程序基础上,只需在主机程序中加入头文件CyAPI.h和库文件CyAPI.lib即可调用相应的控制函数。该类库一共分五大类,分别提供了对uSB设备、usB 配置、USB接口、USB端点及同步信息包的控制接口。其中,从USB端点控制类中又派生出四个子类来分别控制块传输端点、控制端点、中断传输端点以及同步传输端点。 CCyUSBDevice类 CCyUSBDevice类是一个主要的类,是一个原始的库入口类指针,其中定义了USB设备的各种操作,使用前必须首先获得USB设备的句柄。每个CCyUSBDevice类的实例就对应一个USB设备。 CCyUSBConfig类 CCyUSBConfig类用于表示USB设备的配置信息,其定义了很多配置值。该类的构造函数设置.cfg文件中所有的数据成员,然后遍历cfg文件列表所有的CCyUSBInterface。对象并且保存它们的备份,存储新接口的指针及内部数据序列。 CCyUSBInterface类 CCyUSBhiterface类表示USB设备的接口,其中定义了很多函数及变量。该接口可以包含一个或多个端点。当调用ccyUsBDevice::Open()函数时,一个CyUSBConfig的实例被构造,并通过设备描述符来报告. CCyUSBEndPoint类 CCyUSBEndPoint类包含了USB端点的各种描述符及操作函数。该类是一个抽象类,拥有纯虚接口函数BeginDataXfer(),因此不能构造CCyUSBEndPoint类的实例。当一个CCyUSBDevice被打开时将产生当前可替换接口下的所有端点的列表。所有数据的访问与传

相关文档
最新文档