RetrofitBOE

RetrofitWork

package com.bwie.monthlyexaminationsimulation.utils;

import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * author:Created by Administrator on 2018/7/26.
 */
public class RetrofitWork {
    public static RetrofitWork retrofitWork = null;
    private Retrofit retrofit;
    public static RetrofitWork getRetrofitWork(){
        if(retrofitWork==null){
            retrofitWork=new RetrofitWork();
        }
        return retrofitWork;
    }
    public RetrofitWork(){
                retrofit = new Retrofit.Builder()
                        .baseUrl("https://www.zhaoapi.cn/")
                        .addConverterFactory(GsonConverterFactory.create())
                        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                        .build();
    }
    public <T> T createRequest(Class<T> clz){
        T t = retrofit.create(clz);
        return t;
    }
}

RetrofitService

package com.bwie.monthlyexaminationsimulation.utils;

import com.bwie.monthlyexaminationsimulation.bean.AddShopping_Bean;
import com.bwie.monthlyexaminationsimulation.bean.DetailsBean;
import com.bwie.monthlyexaminationsimulation.bean.HomeBean;
import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart;

import io.reactivex.Observable;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * author:Created by Administrator on 2018/7/26.
 */
public interface RetrofitService {
        @POST("home/getHome")
        Observable<HomeBean> getHome();
        @POST("product/getProductDetail")
        Observable<DetailsBean> getDetails(@Query("pid") int pids );
        @POST("product/addCart")
        Observable<AddShopping_Bean> getAdd(@Query("uid")int uid, @Query("pid") int pids);
        @POST("product/getCarts")
        Observable<Shopping_cart> getShopping(@Query("uid")int uid);
}

Shopping_MODEL

package com.bwie.monthlyexaminationsimulation.model;

import android.content.Context;

import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart;
import com.bwie.monthlyexaminationsimulation.utils.RetrofitService;
import com.bwie.monthlyexaminationsimulation.utils.RetrofitWork;

import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;

/**
 * author:Created by Administrator on 2018/7/26.
 */
public class Shopping_Cart_Model {
    private Context context;
    private int uid=2248;
    private String url="http://www.zhaoapi.cn/product/getCarts";
    public void getData(final IModel iModel){
        RetrofitWork retrofitWork = RetrofitWork.getRetrofitWork();
        RetrofitService retrofitService = retrofitWork.createRequest(RetrofitService.class);
        Observable<Shopping_cart> shopping_cartObservable = retrofitService.getShopping(uid);
               shopping_cartObservable.subscribeOn(Schedulers.newThread())
               .observeOn(AndroidSchedulers.mainThread())
                       .subscribe(new Observer<Shopping_cart>() {
                           @Override
                           public void onSubscribe(Disposable d) {

                           }

                           @Override
                           public void onNext(Shopping_cart shopping_cart) {
                                            iModel.getSuccess(shopping_cart);
                           }

                           @Override
                           public void onError(Throwable e) {

                           }

                           @Override
                           public void onComplete() {

                           }
                       });

    }
    public interface IModel{
        void getSuccess(Shopping_cart shopping_cart);
    }
}

 

Shopping_Adapter

package com.bwie.monthlyexaminationsimulation.adapter;

import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bwie.monthlyexaminationsimulation.R;
import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart;
import com.bwie.monthlyexaminationsimulation.view.Main3Activity;

import java.util.List;

/**
 * author:Created by Administrator on 2018/7/28.
 */
public class Shopping_Cart_Adapter extends BaseExpandableListAdapter {
    private OnGetSum onGetSum;

    private List<Shopping_cart.DataBean> data;
    private Main3Activity main3Activity;
    public Shopping_Cart_Adapter(List<Shopping_cart.DataBean> data, Main3Activity main3Activity) {
        this.data = data;
        this.main3Activity = main3Activity;
    }

    @Override
    public int getGroupCount() {
        return data==null?0:data.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return data.get(groupPosition)==null?0:data.get(groupPosition).getList().size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return null;
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return null;
    }

    @Override
    public long getGroupId(int groupPosition) {
        return 0;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return 0;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        ViewHolder1 viewHolder1;
        if(convertView==null){
            convertView = View.inflate(main3Activity, R.layout.shopping_cart_group, null);
            viewHolder1=new ViewHolder1();
            viewHolder1.group_checkBox=convertView.findViewById(R.id.group_checkbox);
            viewHolder1.group_text = convertView.findViewById(R.id.group_text);
            convertView.setTag(viewHolder1);
        }else{
            viewHolder1 = (ViewHolder1) convertView.getTag();
        }

        viewHolder1.group_text.setText(data.get(groupPosition).getSellerName());
        viewHolder1.group_checkBox.setChecked(data.get(groupPosition).getGroupFlag());
        viewHolder1.group_checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                CheckBox box = (CheckBox) v;
                boolean checked = box.isChecked();
                Toast.makeText(main3Activity,checked+"有数据",Toast.LENGTH_SHORT).show();

                data.get(groupPosition).setGroupFlag(checked);

                List<Shopping_cart.DataBean.ListBean> list = data.get(groupPosition).getList();
                for (int i = 0; i < list.size(); i++) {
                    //遍历集合给子条目的复选框选中状态设为父条目复选框的选中状态,父条目及其子条目的全选和反选,
                   list.get(i).setChileFlag(checked);
                }
                createSum();
                //调用刷新适配器的方法
                setNotifyDataSetChanged();
            }
        });

        return convertView;
    }

    @Override
    public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        final ViewHolder2 viewHolder2;
        if(convertView==null){
            convertView = View.inflate(main3Activity,R.layout.shopping_cart_chile,null);
            viewHolder2 =new ViewHolder2();
            viewHolder2.chile_checkBox=convertView.findViewById(R.id.chile_checkbox);
            viewHolder2.chile_imageView = convertView.findViewById(R.id.shopping_cart_chile_imageview);
            viewHolder2.chile_title = convertView.findViewById(R.id.chile_title);
            viewHolder2.chile_price = convertView.findViewById(R.id.chile_price);
            viewHolder2.chile_text = convertView.findViewById(R.id.shopping_price_text);
            viewHolder2.button_jia = convertView.findViewById(R.id.shopping_jia);
            viewHolder2.button_jian = convertView.findViewById(R.id.shopping_jian);
            convertView.setTag(viewHolder2);
        }else{
            viewHolder2 = (ViewHolder2) convertView.getTag();
        }
        viewHolder2.chile_checkBox.setChecked(data.get(groupPosition).getList().get(childPosition).getChileFlag());
        viewHolder2.chile_text.setText(data.get(groupPosition).getList().get(childPosition).getNum()+"");
        String[] split = data.get(groupPosition).getList().get(childPosition).getImages().split("\\|");
        Glide.with(main3Activity).load(split[0]).into(viewHolder2.chile_imageView);
        viewHolder2.chile_title.setText(data.get(groupPosition).getList().get(childPosition).getTitle());
        viewHolder2.chile_price.setText("¥"+data.get(groupPosition).getList().get(childPosition).getPrice()+"");
        viewHolder2.button_jia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String s = viewHolder2.chile_text.getText().toString();
                int counts = Integer.valueOf(s);
                counts++;
                data.get(groupPosition).getList().get(childPosition).setNum(counts);
                viewHolder2.chile_text.setText(data.get(groupPosition).getList().get(childPosition).getNum()+"");
            }
        });
        viewHolder2.button_jian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String s = viewHolder2.chile_text.getText().toString();
                int counts = Integer.valueOf(s);
                counts--;
                data.get(groupPosition).getList().get(childPosition).setNum(counts);
                viewHolder2.chile_text.setText(data.get(groupPosition).getList().get(childPosition).getNum()+"");
            }
        });
        viewHolder2.chile_checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                boolean checked1 = viewHolder2.chile_checkBox.isChecked();
                boolean flag = true;
                List<Shopping_cart.DataBean.ListBean> list = data.get(groupPosition).getList();

                list.get(childPosition).setChileFlag(checked1);
                createSum();
              //  cacuteTotalNum( );
                for (int i = 0; i < list.size(); i++) {
                    Boolean chileFlag = list.get(i).getChileFlag();
                 //   onGetUid.getUid(data.get(groupPosition).getList().get(childPosition).getPid());
                    if (chileFlag == false) {
                        flag = false;
                    }
                }
                data.get(groupPosition).setGroupFlag(flag);
                setNotifyDataSetChanged();
            }
        });
        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
    public void createSum(){
         double sum=0;
         for(int i=0;i<data.size();i++){
             List<Shopping_cart.DataBean.ListBean> list = data.get(i).getList();
             for (int j = 0 ;j<list.size();j++){
                    if(list.get(j).getChileFlag()){
                       sum+=list.get(j).getNum()*list.get(j).getPrice();
                    }
             }
         }
         onGetSum.getPrice(sum);
    }
    class ViewHolder1{
        CheckBox group_checkBox;
        TextView group_text;
    }
    class ViewHolder2{
        CheckBox chile_checkBox;
        ImageView chile_imageView;
        TextView chile_title,chile_price,chile_text;
        Button button_jia,button_jian;
    }
    public void setNotifyDataSetChanged(){
        //刷新适配器
        notifyDataSetChanged();
    }
    public interface OnGetSum{
        void getPrice(double sum);
    }
    public void setOnGetSum(OnGetSum onGetSum){
        this.onGetSum = onGetSum;
    }
}

 

Shopping_Activity

package com.bwie.monthlyexaminationsimulation.view;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.TextView;

import com.bwie.monthlyexaminationsimulation.MainActivity;
import com.bwie.monthlyexaminationsimulation.R;
import com.bwie.monthlyexaminationsimulation.adapter.Shopping_Cart_Adapter;
import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart;
import com.bwie.monthlyexaminationsimulation.presenter.Shopping_Cart_Presenter;

import java.util.List;

public class Main3Activity extends AppCompatActivity implements Shopping_Cart_View{

    private ExpandableListView expandableListView;
    private ImageView shopping_fanhui;
    private TextView shopping_heji;
    private Shopping_Cart_Adapter shopping_cart_adapter;
    private double p=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        shopping_heji = findViewById(R.id.shopping_heji);
        expandableListView = findViewById(R.id.shopping_cart_listview);
        shopping_fanhui = findViewById(R.id.shopping_fanhui);
        shopping_heji.setText(p+"");
        shopping_fanhui.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent =new Intent(Main3Activity.this, MainActivity.class);
                startActivity(intent);
            }
        });
        Shopping_Cart_Presenter shopping_cart_presenter = new Shopping_Cart_Presenter(Main3Activity.this);
        shopping_cart_presenter.Home();
    }

    @Override
    public void getSuccess(Shopping_cart shopping_cart) {
        List<Shopping_cart.DataBean> data = shopping_cart.getData();
        shopping_cart_adapter = new Shopping_Cart_Adapter(data,Main3Activity.this);

        expandableListView.setAdapter(shopping_cart_adapter);
        int count = expandableListView.getCount();
        for(int i=0;i<count;i++){
            expandableListView.expandGroup(i);
        }
       shopping_cart_adapter.setOnGetSum(new Shopping_Cart_Adapter.OnGetSum() {
           @Override
           public void getPrice(double sum) {
               p=sum;
               Log.d("priceAll",sum+"=================");
               shopping_heji.setText(p+"");
           }
       });
    }
}

 

Shopping_presenter

package com.bwie.monthlyexaminationsimulation.presenter;

import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart;
import com.bwie.monthlyexaminationsimulation.model.Shopping_Cart_Model;
import com.bwie.monthlyexaminationsimulation.view.Shopping_Cart_View;

/**
 * author:Created by Administrator on 2018/7/26.
 */
public class Shopping_Cart_Presenter {
    private Shopping_Cart_View shopping_cart_views;
    private final Shopping_Cart_Model shopping_cart_model;

    public Shopping_Cart_Presenter(Shopping_Cart_View shopping_cart_view){
      this.shopping_cart_views =shopping_cart_view;
        shopping_cart_model = new Shopping_Cart_Model();
    }
    public void Home(){
        shopping_cart_model.getData(new Shopping_Cart_Model.IModel() {
            @Override
            public void getSuccess(Shopping_cart shopping_cart) {
                shopping_cart_views.getSuccess(shopping_cart);
            }
        });
    }
}
本项目采用C++编程语言结合ROS框架构建了完整的双机械臂控制系统,实现了Gazebo仿真环境下的协同运动模拟,并完成了两台实体UR10工业机器人的联动控制。该毕业设计在答辩环节获得98分的优异成绩,所有程序代码均通过系统性调试验证,保证可直接部署运行。 系统架构包含三个核心模块:基于ROS通信架构的双臂协调控制器、Gazebo物理引擎下的动力学仿真环境、以及真实UR10机器人的硬件接口层。在仿真验证阶段,开发了双臂碰撞检测算法和轨迹规划模块,通过ROS控制包实现了末端执行器的同步轨迹跟踪。硬件集成方面,建立了基于TCP/IP协议的实时通信链路,解决了双机数据同步和运动指令分发等关键技术问题。 本资源适用于自动化、机械电子、人工智能等专业方向的课程实践,可作为高年级课程设计、毕业课题的重要参考案例。系统采用模块化设计理念,控制核心与硬件接口分离架构便于功能扩展,具备工程实践能力的学习者可在现有框架基础上进行二次开发,例如集成视觉感知模块或优化运动规划算法。 项目文档详细记录了环境配置流程、参数调试方法和实验验证数据,特别说明了双机协同作业时的时序同步解决方案。所有功能模块均提供完整的API接口说明,便于使用者快速理解系统架构并进行定制化修改。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文围绕基于非支配排序的蜣螂优化算法(NSDBO)在微电网多目标优化调度中的应用展开研究,提出了一种改进的智能优化算法以解决微电网系统中经济性、环保性和能源效率等多重目标之间的权衡问题。通过引入非支配排序机制,NSDBO能够有效处理多目标优化中的帕累托前沿搜索,提升解的多样性和收敛性,并结合Matlab代码实现仿真验证,展示了该算法在微电网调度中的优越性能和实际可行性。研究涵盖了微电网典型结构建模、目标函数构建及约束条件处理,实现了对风、光、储能及传统机组的协同优化调度。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事微电网、智能优化算法应用的工程技术人员;熟悉优化算法与能源系统调度的高年级本科生亦可参考。; 使用场景及目标:①应用于微电网多目标优化调度问题的研究与仿真,如成本最小化、碳排放最低与供电可靠性最高之间的平衡;②为新型智能优化算法(如蜣螂优化算法及其改进版本)的设计与验证提供实践案例,推动其在能源系统中的推广应用;③服务于学术论文复现、课题研究或毕业设计中的算法对比与性能测试。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注NSDBO算法的核心实现步骤与微电网模型的构建逻辑,同时可对比其他多目标算法(如NSGA-II、MOPSO)以深入理解其优势与局限,进一步开展算法改进或应用场景拓展。
内容概要:本文详细介绍了使用ENVI与SARscape软件进行DInSAR(差分干涉合成孔径雷达)技术处理的完整流程,涵盖从数据导入、预处理、干涉图生成、相位滤波与相干性分析、相位解缠、轨道精炼与重去平,到最终相位转形变及结果可视化在内的全部关键步骤。文中以Sentinel-1数据为例,系统阐述了各环节的操作方法与参数设置,特别强调了DEM的获取与处理、基线估算、自适应滤波算法选择、解缠算法优化及轨道精炼中GCP点的应用,确保最终获得高精度的地表形变信息。同时提供了常见问题的解决方案与实用技巧,增强了流程的可操作性和可靠性。; 适合人群:具备遥感与GIS基础知识,熟悉ENVI/SARscape软件操作,从事地质灾害监测、地表形变分析等相关领域的科研人员与技术人员;适合研究生及以上学历或具有相关项目经验的专业人员; 使用场景及目标:①掌握DInSAR技术全流程处理方法,用于地表沉降、地震形变、滑坡等地质灾害监测;②提升对InSAR数据处理中关键技术环节(如相位解缠、轨道精炼)的理解与实操能力;③实现高精度形变图的生成与Google Earth可视化表达; 阅读建议:建议结合实际数据边学边练,重点关注各步骤间的逻辑衔接与参数设置依据,遇到DEM下载失败等问题时可参照文中提供的多种替代方案(如手动下载SRTM切片),并对关键结果(如相干性图、解缠图)进行质量检查以确保处理精度。
此项目旨在实现一个简易而实用的RFID智能门禁控制系统。采用经典的51系列单片机——STC89C52作为核心控制器,集成MFRC522射频识别模块来读取RFID卡片信息。用户界面通过128x64像素的LCD显示屏展示相关信息,同时配备了键盘用于密码的输入、验证及修改。此设计结合了RFID技术的高效率识别与单片机的强大控制能力,适用于学习、教学或小型安防项目。 资源包含 源代码:完整C语言编写的源程序,涵盖了RFID识别、密码验证逻辑、显示控制以及用户交互等功能模块。 原理图:详细展示了整个系统的电路连接,包括单片机、MFRC522模块、LCD12864屏幕、按键等组件的电气连接方式,便于理解和自制。 技术特点 RFID技术应用:通过MFRC522模块实现非接触式身份认证,提升门禁安全性与便捷性。 人机交互界面:利用LCD12864显示屏直观展示状态信息,并通过物理按键进行操作,增加了系统的易用性。 密码安全机制:支持用户密码的设定和更改,增强系统安全性。 51单片机编程:适合初学者和专业人士学习51单片机应用开发,尤其是嵌入式系统与物联网领域的实践。 使用指南 环境搭建:确保你有合适的IDE(如Keil uVision)安装以编译51单片机的C代码。 原理图分析:详细阅读原理图,了解各部件间的连接,这对于正确搭建硬件平台至关重要。 编译与上传:将提供的源代码编译无误后,通过编程器或ISP接口烧录到STC89C52单片机中。 硬件组装:根据原理图搭建电路,确保所有组件正确连接。 测试与调试:完成后进行功能测试,可能需要对代码或硬件做适当调整以达到最佳工作状态。
【硕士论文完美复现】【价格型需求响应】基于需求侧响应的配电网供电能力综合评估(Python代码实现)内容概要:本文档围绕“基于需求侧响应的配电网供电能力综合评估”展开,重点研究价格型需求响应对配电网供电能力的影响,结合硕士论文复现,利用Python代码实现相关模型与算法。内容涵盖需求响应机制建模、用户用电行为响应分析、配电网供电能力量化评估方法,并通过仿真验证策略的有效性。研究旨在提升配电网运行效率与韧性,促进可再生能源消纳,具有较强的工程应用背景。文档同时附带大量电力系统、优化调度、机器学习等领域Matlab/Python代码资源,服务于科研复现与教学实践。; 适合人群:具备电力系统基础知识和一定编程能力的研究生、科研人员及从事智能电网、能源优化领域的技术人员,尤其适合开展需求响应、配电网优化相关课题研究的人员。; 使用场景及目标:①复现硕士论文中关于价格型需求响应与配电网供电能力评估的研究成果;②学习需求响应建模方法及其在配电网中的应用场景;③掌握Python在电力系统仿真与优化中的实际编程技巧;④获取丰富的科研代码资源以支持学术研究与项目开发。; 阅读建议:建议结合文档提及的代码资源进行实践操作,重点关注需求响应模型构建与供电能力评估指标设计部分,同时可参考文中列举的其他研究案例拓展研究思路。
【通过ADMM进行TV-L1去噪】一种用于总变差去噪的交替方向法研究(Matlab代码实现)内容概要:本文围绕“通过ADMM进行TV-L1去噪”展开,介绍了一种用于总变差(Total Variation, TV)去噪的交替方向乘子法(ADMM)的研究与实现方法。文章重点阐述了TV-L1模型在图像去噪中的优势,特别是其在保留图像边缘细节方面的良好性能,并详细描述了ADMM算法的迭代求解过程,包括变量分裂、增广拉格朗日函数构建及子问题求解步骤。文中提供了完整的Matlab代码实现,便于读者复现算法并应用于实际图像去噪任务。此外,文档还提及该方法在信号与图像处理领域的广泛应用前景。; 适合人群:具备一定数学基础和信号/图像处理背景,熟悉优化算法及Matlab编程的研究生、科研人员或工程技术人员。; 使用场景及目标:①学习和掌握TV-L1正则化模型在图像去噪中的原理与应用;②深入理解ADMM算法的基本思想及其在凸优化问题中的分解求解机制;③通过Matlab代码实现,提升对迭代优化算法的编程与调试能力,服务于学术研究或工程项目中的噪声抑制需求。; 阅读建议:建议读者结合凸优化理论基础,逐步推导ADMM的每一步更新公式,并对照Matlab代码理解变量初始化、迭代流程与收敛判断等实现细节,鼓励尝试不同参数设置以观察去噪效果变化,从而加深对算法性能影响因素的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值