Cst Field Ref 在 Android 源码中的扩展应用

版权申诉
0 下载量 105 浏览量 更新于2024-10-08 收藏 796B RAR 举报
资源摘要信息:"CstFieldRef.rar_cst" 标题:CstFieldRef.rar_cst 描述:Cst Field Ref extends Cst Member Ref Source Code for Andriod 标签:cst 文件列表:CstFieldRef.java 从上述给定文件信息中,我们可以提炼出以下知识点: 1. CstFieldRef的含义和作用 CstFieldRef很可能是指一个特定于Android开发环境中的类或对象。根据标题和描述中的信息,CstFieldRef是一个扩展自Cst Member Ref的资源引用类。在Android开发中,Cst Member Ref可能是一个用于引用组件成员(比如类、字段或方法等)的基类。CstFieldRef作为其扩展,很可能是专门用于引用字段(Field)级别的成员。这表明它可能用于处理与类的字段相关的信息,例如字段的声明、类型、访问修饰符等。 2. Android开发中的反射机制 在Android开发中,反射是一种重要的机制,允许程序在运行时检查或修改其自身的行为。通过反射,开发者可以在不知道具体类的情况下,查找类的字段、方法和构造函数等信息,并进行操作。CstFieldRef这样的类可能就是为支持反射机制而设计的,它提供了对类字段信息进行动态访问和操作的能力。 3. Android源代码的结构和组织 由于标题中的“Source Code for Andriod”表明这是Android源代码的一部分,我们可以了解Android项目源代码的一般结构。Android源代码通常包含多个模块和组件,每个组件可能拥有自己的类和接口定义。CstFieldRef和CstMemberRef作为类的定义,可能属于Android平台框架层或应用层的某个模块中。 4. 源代码文件命名规范 从文件列表中的“CstFieldRef.java”文件名可以推断出,Android开发遵循一定的源代码命名规范。通常来说,Java文件名与其公开类名相同,文件扩展名为.java。因此,“CstFieldRef.java”文件很可能是定义了CstFieldRef类的Java文件。 5. Java编程中的类继承 描述中提到的“extends”关键字在Java中表示继承关系,说明CstFieldRef类继承了Cst Member Ref类的属性和方法。在面向对象编程中,继承允许一个类继承另一个类的特性,以实现代码的重用和功能的扩展。通过这种方式,CstFieldRef类可能复用了Cst Member Ref类的功能,并在此基础上增加了处理字段相关操作的特定功能。 6. Java编程语言的基础知识 由于涉及到Java源代码文件,这要求开发者需要具备一定的Java编程语言知识。包括但不限于Java的基本数据类型、控制流程语句、类和对象的定义、继承和接口实现、异常处理以及Java集合框架等。 7. Android开源项目(AOSP)资源 CstFieldRef可能来自于Android开源项目(AOSP),这是Google官方提供的Android系统源代码。AOSP是Android系统及其应用和服务的完整实现,对于想要深入了解Android系统工作原理和学习如何开发系统级应用的开发者而言,AOSP是十分宝贵的学习资源。开发者可以下载完整的AOSP源代码,并通过源代码文件如CstFieldRef.java来研究Android平台的内部机制。 综上所述,CstFieldRef.java文件是Android平台代码的一部分,涉及到类继承、字段引用和反射机制等编程概念。通过对这类资源的学习和研究,开发者可以加深对Android系统底层实现的理解,并在实际开发过程中更好地利用这些机制解决实际问题。

以hive的角度检查语法: with cur_dim_comb as (SELECT DISTINCT t.dim_comb ,t.var_sub_class ,t.acc_value FROM gerp.cux_cst_data_alloc_his t WHERE t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id )) select tp.bd_code --事业部编码 ,tp.bd_name --事业部名称 ,hp.ou_code --OU名称 ,hp.ou_name --OU编码 ,op.main_class_desc --差异大类 ,op.acc_value --科目代码 ,op.acc_desc --科目名称 ,op.dim_comb --区分维度 ,op.begin_amount --期初余额 ,op.accrual_amount --本期发生 ,op.balance_diff_alloc_amount --期末差异结存 ,op.var_sub_class ,op.main_class_value ,op.org_id ,op.period_name ,op.job_ver_id from (select up.* ,q1.* from (SELECT DISTINCT maincl.* ,t.* FROM t inner join (SELECT fv.flex_value ,fv.description FROM fv inner join fs on fv.flex_value_set_id = fs.flex_value_set_id AND fs.flex_value_set_name = 'CUX_CST_VARIANCE_TYPE' AND fv.enabled_flag = 'Y' AND fv.hierarchy_level = '2' AND fv.flex_value LIKE '10%' ) maincl on t.var_main_class = maincl.flex_value inner join cur_dim_comb on cur_dim_comb.var_sub_class = t.var_sub_class and cur_dim_comb.acc_value = t.acc_value WHERE 1 = 1 AND t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id) ORDER BY maincl.description ,t.acc_value ,cur_dim_comb.dim_comb ) up inner join (SELECT t1.* ,SUM(t1.begin_amount) begin_amount ,SUM(t1.accrual_amount) accrual_amount ,SUM(t1.balance_diff_alloc_amount) balance_diff_alloc_amount FROM gerp.cux_cst_data_alloc_his t1 LEFT JOIN gerp.cux_cst_data_alloc_his t ON t1.top_var_type = '10' AND t1.var_sub_class = t.var_sub_class --p_var_sub_class AND t1.org_id = t.org_id --p_org_id AND t1.period_name = t.period_name --p_period_name AND t1.job_ver_id = t.job_ver_id --p_job_ver_id AND t1.acc_value = t.acc_value --p_acc_value WHERE t1.dim_comb in (select distinct dim_comb from cur_dim_comb) group by t1.org_id,t1.period_name,t1.job_ver_id,t1.var_sub_class,t1.acc_value ) q1 on q1.org_id = up.org_id --p_org_id AND q1.period_name = up.period_name --p_period_name AND q1.job_ver_id = up.job_ver_id --p_job_ver_id AND q1.var_sub_class = up.var_sub_class --p_var_sub_class AND q1.acc_value = up.acc_value --p_acc_value ) op

2023-05-26 上传

优化sql:SELECT we.organization_id ,we.wip_entity_id ,case when wl.line_id is null then we.wip_entity_name else '' end wip_entity_name ,we.primary_item_id ,mtt.transaction_type_name ,mmt.transaction_date ,bd.department_code ,mmt.inventory_item_id ,mmt.subinventory_code ,mta.reference_account ,br.resource_code ,lu2.meaning as line_type_name ,mta.base_transaction_value ,mta.cost_element_id ,flv.meaning as cost_element ,wdj.class_code job_type_code ,ml.meaning job_type_name FROM (select * from gerp.mtl_material_transactions where substr(transaction_date,1,7) >= '2023-06' and transaction_source_type_id = 5) mmt inner join gerp.wip_entities we on mmt.organization_id = we.organization_id inner join gerp.mtl_transaction_accounts mta on mta.transaction_source_id = we.wip_entity_id and mta.transaction_id = mmt.transaction_id and mta.transaction_source_type_id = 5 inner join gerp.mtl_transaction_types mtt on mtt.transaction_type_id = mmt.transaction_type_id inner join mfg_lookups lu2 on lu2.lookup_code = mta.accounting_line_type and lu2.lookup_type = 'CST_ACCOUNTING_LINE_TYPE' inner join gerp.mtl_system_items_b msi on msi.inventory_item_id = mmt.inventory_item_id and msi.organization_id = mta.organization_id left join gerp.bom_departments bd on bd.department_id = mmt.department_id left join gerp.bom_resources br on br.resource_id = mta.resource_id left join gerp.wip_lines wl on wl.line_id = mmt.repetitive_line_id left join gerp.wip_discrete_jobs wdj on wdj.wip_entity_id = mta.transaction_source_id left join gerp.fnd_lookup_values_vl flv on cast(mta.cost_element_id as string) = flv.lookup_code and flv.lookup_type = 'CST_COST_CODE_TYPE' left join mfg_lookups ml on ml.lookup_code = wdj.job_type and ml.lookup_type = 'WIP_DISCRETE_JOB' 。其中mmt,we,mta,msi,wdj数据量很大

2023-06-10 上传
2023-05-27 上传

import serial import modbus_tk.defines as cst from modbus_tk import modbus_rtu import struct # 打开两个串口 com1 = serial.Serial(port='com2', baudrate=38400, bytesize=8, parity='N', stopbits=1) com2 = serial.Serial(port='com3', baudrate=38400, bytesize=8, parity='N', stopbits=1) # 创建Modbus RTU主机(master) master = modbus_rtu.RtuMaster(com1) master.set_timeout(1.0) master.set_verbose(True) # 读取保持寄存器数据 red = master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 9) print(red) # 将字节数组划分为若干个长度为4的子数组 # def hex_f(a,b): # # g1=b # # z=a+g1#高低16位组合 # # z1=hex(z)[2:]#取0x后边的部分 # # # print(z1) # # return struct.unpack('!f', z1.decode('hex'))[0]#返回浮点数 # # e = hex_f(red[0],red[1]) # # print(e) red1 = master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 9)[0] # 这里可以修改需要读取的功能码 print(red1) new = int(red1 * 0.8) print(new) red =master.execute(1, function_code=cst.WRITE_MULTIPLE_REGISTERS, starting_address=0, output_value=[new]) # 读取输入寄存器数据 input_regs = master.execute(1, cst.READ_INPUT_REGISTERS, 0, 9) print(input_regs,1) # 读取输入线圈数据 input_bits = master.execute(1, cst.READ_COILS, 0, 9) print(input_bits,2) # 读取输出线圈数据 output_bits = master.execute(1, cst.READ_DISCRETE_INPUTS, 0, 9) print(output_bits,3) # 将所有读取数据打包为Modbus RTU消息并写入com2串口 data = red + input_regs + input_bits + output_bits com2.write(master._do_crc(data)) # 关闭串口 com1.close() com2.close()AttributeError: 'RtuMaster' object has no attribute '_do_crc'咋修改不报错

2023-05-27 上传
2023-05-27 上传