Planndu — Planndu is a simple task manager app for individuals

Product Hunt 技术与编程 中国大陆
981天前

详细信息

“ Hello Product Hunt! I have worked as a Software engineer for the past seven years. While working on multiple projects, I had the chance to use a variety of Kanban tools on a Desktop that I found very useful and helpful. That feeling of dragging your tasks from one group to another has some satisfaction in it, and you could see the new priorities right away. When looking for something similar on the mobile, I couldn't find anything. So, four months ago, I teamed up with a designer, we left our 9/5 jobs, we worked days and nights to make it work, and now we are ready to present you with the first version! Here’s a highlight of some of the other features: - Reminders / Location reminders - Document scanner for text extraction - Adding collaborators - Sync with Google Calendar - Pomodoro focus timer - To-do templates - Speech to text We are looking for early adopters and feedback for our Android App, Thank you for the opportuinty, Yarik. ” – Yarik Skov Discussion | Link

免责声明

该外包需求信息来源于站外平台,本站仅提供公开信息部分字段展示与订阅服务,更多请查看免责声明

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

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅

类似推荐

¥ 需报价 技术与编程 匠迹众包 中国大陆
4天前

// 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, //最大扫描设备数

¥ 需报价 技术与编程 匠迹众包 中国大陆
4天前