移动应用

开源众包 Technology & Programming China
980 days ago

Description

现在需要写一个注册机,就是自动注册软件的一个自动化程序,前提必须是有经验,以前或者现在有接触过注册机的。

关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now

Similar Teleworks

// 2016.12
//
//** Copyright (C) WCH 2002-2016
//
Web: http://WCH.CN **
//

//** DLL for WCH MCU ISP
//
C, VC6.0 **
//****************************************
//
// WCH MCU ISP API V1.0
// 江苏沁恒股份有限公司 作者: TECH30 2016.12
// 运行环境: Windows Windows 2000 and later
// support chip: CH55X
//

#ifndef _WCH55XISP_DLL_H
#define _WCH55XISP_DLL_H

#ifdef __cplusplus
extern "C" {
#endif


#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // 定义获取结构成员相对偏移地址的宏

#ifndef max
#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // 较大值
#endif

#ifndef min
#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // 较小值
#endif

#define MAX_ISPDEV_NUM 16

//MCU类型
#define MCU_CH55X 0
#define MCU_CH56X 1
#define MCU_CH54X 2
#define MCU_CH57X 3
#define MCU_CH32F1X 4
#define MCU_CH32V1X 5
#define MCU_CH58X 6
#define MCU_CH32V3X 7
#define MCU_CH32F2X 8
#define MCU_CH32V2X 9

typedef VOID ( CALLBACK * mPCH55X_USB_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序
ULONG iEventStatus, // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件
ULONG DevIndexArray, //插入或移除的设备序号
ULONG DevCnt); //当前设备总数

#define InforType_Succ 0
#define InforType_Err 1
#define InforType_Hit 2
typedef VOID ( CALLBACK * mOutputPrint ) ( // 应用层信息输出函数
UCHAR InforType,WCHAR *DataStr);


typedef VOID ( CALLBACK * mAppendPrint ) ( // 应用层信息追加输出函数
ULONG LineNo,WCHAR *DataStr);

typedef VOID ( CALLBACK * mPCH55X_USB_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序
ULONG iEventStatus, // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件
ULONG DevIndexArray, //插入或移除的设备序号
ULONG DevCnt); //当前设备总数



#pragma pack(1) //强制将下面#pragma pack(1) ...#pragma pack之间的结构定义为1字节对齐,传送scsi命令要8字节对齐(默认8字节).

typedef struct _CHIP_INFOEX {
TCHAR ChipName[16];
UINT FlashMaxSize;
UINT EepromMaxSize;
BOOL IsNetworkDownloadAvailable;
BOOL IsUsbDownloadAvailable;
BOOL IsSerialDownloadAvailable;
UCHAR DeviceType;
LIST_ENTRY listEntry;
UCHAR ChipId;
USHORT EepromStartAddr;
TCHAR Introduction[256];
TCHAR IntroductionEn[256];
}CHIP_INFOEX, *PCHIP_INFOEX;

//ISP下载设备结构信息
typedef struct _ISP55XDEVICEINFOR
{
ULONG Index; //枚举后的设备序号
UCHAR McuType; //芯片型号
BOOL IsSupportUID; //MCU是否支持获取UID,较早版本不支持UID获取
UCHAR IspVer[4]; //ISP版本
UCHAR IspMcuUID[8]; //MCU唯一ID
CHAR PortName[32]; //串口设备名,只有串口下载时才有值
BOOL DevIsOnline; //设备是否连接上该串口,只在串口下载时有用
BOOL IsCoolBoot; //是否是上电进行BOOT。如果不是,则不能修改配置位
UCHAR MacAddr[6];
BOOL IsPreBTV230;
}Isp55xDevInforS,PIsp55xDevInforS;


//ISP下载设备设置
typedef struct _CH55xISPSETTING
{
ULONG IspInter face; //下载接口类型 0:USB,1:串口 2:网口
UCHAR IspMcuType; //芯片型号,芯片型号的最后两位,如CH563,则写0x63
UCHAR IspMcuSeries; //芯片系列 0:CH55X;1:CH56X

BOOL IsEnableLongRest; //使能上电复位期间的额外延时复位
BOOL IsXtOscStrong; //启用晶体振荡器增强对外驱动能力,CH554不支持
BOOL IsEnableResetPin; //指定手工复位输入引脚,CH554使用RST引脚,其他型号指定P5.7
BOOL IsEnableP0PullUp; //使能系统复位期间P0端口的内部上拉电阻,CH554不支持
BOOL IsMcuResetAfterIsp; //下载完成后是否复位直接运行目标程序(只支持网络模式)
BOOL IsEnableCfgBuf64K;
BOOL EnableIce; //CH55X,CH32FX复用为串口一键下载功能
BOOL EnableBootLoader;
BOOL IsSetNetDevMac;
UCHAR NetDevMacAddr[6]; //CH58X时,第一字节用来记录写保护块数
BOOL IsCodeProtect; //启用代码保护
BOOL IsFirstRunIAP; //上电后运行IAP
BOOL IsEnableIAP; //是否启用IAP
ULONG IAPStartAddr; //IAP起始地址
CHAR UserFileName[MAX_PATH]; //用户文件名
CHAR IapFileName[MAX_PATH]; //IAP文件名
CHAR DataFileName[MAX_PATH]; //Dataflash文件名

BOOL IsNoKeyDnAtSer; //界面,开启串口免铵键下载
UCHAR BootPinNum; //ISP下载配置脚
BOOL IsClearDataFlash; //清空DataFlash
转换成易语言
BOOL IsEnableUsbPnpNotify; //是否启用USB插拔通知
BOOL IsEraseAllCFlash;
BOOL IsEraseAllDFlash;
mPCH55X_USB_NOTIFY_ROUTINE UsbPnpNotifyRoutine; //插拔通知回调函数

ULONG LocalIP; //本地ISP IP地址
ULONG GatewayIP;
ULONG MaskIP;
BOOL IsSetDevIP;
ULONG dwDevIP;

mOutputPrint AppOutput; //应用程序信息打印函数
mAppendPrint AppAppendOutput; //应用程序信息追加打印函数

BOOL UILangIsCH; //中英文
UCHAR LV_RST_VOL; //门限电压
BOOL IsSimulat; //两线仿真调试接口使能
BOOL IsBootLoader; //引导程序使能
BOOL IsPorCtr;
BOOL IsUsbdPu;
BOOL IsUsbdMode;
BOOL IsStandbyRst;
BOOL IsStopRst;
BOOL IsIwdgSw;
UCHAR WPR_DATA[8];

BOOL IsEnLockup;
BOOL IsEnOutReset;
BOOL IsEnDebug;
UCHAR UserMem; //CH543作为LDO输出电压参数
UCHAR Baud[4];
}CH55xIspOptionS,PCH55xIspOptionS;


#pragma pack()

#define CH375_DEVICE_ARRIVAL 3 // 设备插入事件,已经插入
#define CH375_DEVICE_REMOVE 0 // 设备拔出事件,已经拔出


//CH55X ISP函数

/

USB下载可以实现插入后自动下载和一次多个设备下载
USB下载使用步骤:
1.设置ISP下载设置,设置下载接口,芯片型号,必须在所有操作前设置
WCH55x_SetIspOption,设置ISP下载设置
需要在插入时自动下载,需提前设置:CH55xIspOptionS->IsEnableUsbPnpNotify
2.通过USB搜索ISP下载设备,返回枚举的设备数,将返回的IspDevInfor设备数组信息保存
WCH55x_EnumDevices
3.将目标文件数据写入到mcu flash内,需指定设备序号
WCH55x_FlashProgram


串口下载,可以实现插入某个串口后自动下载
串口下载使用步骤
1.WCH55x_SetIspOption
设置ISP下载设置,设置下载接口,芯片型号,必须在所有操作前设置

2.WCH55x_EnumDevices
IspOption->IspInterface = 1:串口下载方式时,此函数将执行枚举电脑上所有的串口,返回枚举的串口数,将返回的IspDevInfor设备数组信息保存

3.WCH55x_GetIspDeviceInfor
下载前必须调用WCH55x_GetIspDeviceInfor函数去获取指定设备的信息,是否在线,芯片UID等。因为串口不支持即插即用,只能手工获取。
IspDevInfor->DevIsOnline=TRUE,表示已检测到设备已连接至该接口

4.将目标文件数据写入到mcu flash内,需指定设备序号
WCH55x_FlashProgram
/

//IspOption->IspInterface = 0:USB下载方式时,此函数将执行通过USB搜索ISP下载设备,返回枚举的设备数
//IspOption->IspInterface = 1:串口下载方式时,此函数将执行枚举电脑上所有的串口,返回枚举的串口数
//获取指定序号设备信息
BOOL WINAPI WCH55x_GetIspDeviceInfor(ULONG iIndex, //指定序号设备信息
PIsp55xDevInforS IspDevInfor);//设备信息
//设置ISP下载设置Ex
BOOL WINAPI WCH55x_SetIspOption(CH55xIspOptionS *IspOption);//ISP选项

//获取ISP下载设置
BOOL WINAPI WCH55x_GetIspOption(CH55xIspOptionS *IspOption); //ISP选项

//USB接口写EEPROM数据
BOOL WCH55x_WriteDataFlash(ULONG iIndex, //设备序号
ULONG StartAddr, //起始地址
ULONG *oWriteLen, //写入长度
PUCHAR DataBuf, //数据缓冲区
BOOL bIsErase);

//USB接口读EEPROM数据
BOOL WCH55x_ReadDataFlash(ULONG iIndex, //设备序号
ULONG StartAddr, //起始地址
ULONG *oReadLen, //写入长度
PUCHAR DataBuf); //数据缓冲区)

BOOL WINAPI WCH55xIsp_ReadConfig(ULONG DevI,
PUCHAR IapCfgVal, //4字节
PUCHAR IspCfgVal, //4字节
PUCHAR CFlashCfgVal, //4字节
PULONG BootVer,
PUCHAR UUID);
//取消操作
VOID WCH55x_StopOp();

//通过USB搜索ISP下载设备,返回枚举的设备数。旧版BTV230,只支持一个设备枚举
ULONG WINAPI WCH55x_EnumDevices(Isp55xDevInforS *IspDevInfor, //IspDevInfor:设备信息数组
UCHAR MaxDevCnt, //最大扫描设备数

¥ 需报价 Technology & Programming 匠迹众包 China
3 days ago
平台:Windows 核心功能: 需要开发一款支持 文件名 和 文件内容 搜索的工具,功能类似于 AnyTXT 和 Everything。 文件名搜索:支持快速准确的文件名匹配,支持正则表达式等高级搜索功能。 文件内容搜索:支持对文件内容的全文搜索,能够在大规模文件系统中迅速定位包含指定文本的文件。 索引构建与更新速度:要求索引构建要非常快速,能够在短时间内完成初始索引创建和增量更新,适应频繁更新的文件系统。 检索速度:检索速度必须要高效,能够在大规模文件系统中实现秒级响应,提供极低延迟的搜索体验。 扩展性:系统需要具备良好的扩展性,支持随着文件数量和数据量的增加而保持高性能。 参考案例: AnyTXT:该工具具备强大的文件内容搜索功能,能够支持多种文件格式的内容索引。 Everything:该工具在文件名搜索方面表现卓越,支持高效的实时索引和极速搜索。可以作为文件名搜索方面的参考。 其他要求: SDK支持二次开发:需要提供 SDK,以支持二次开发,允许用户根据具体需求进行定制和扩展。 授权/出售的方式:开发周期有限,希望是成熟的解决方案,可以直接授权或购买已经具备此类功能的工具或SDK,从而缩短开发周期,并专注于二次开发和功能扩展。 优先级: 时间紧迫,因此优先考虑已有能力和现成的解决方案,能够直接授权或出售的形式,避免从头开始开发。
¥ 5000-10000 Technology & Programming 开源众包 China
1 days ago