// // Created by xemon on 04.01.23. // #include "SystemDelayInterface.h" #include "PwmSim7600e.h" bool PwmSim7600e_Startup(tSim7600ePower *env) { GpioPinEnable(&env->gsm.PowerGsm); uint32_t tm = SystemGetMs() + 1000; while (tm > SystemGetMs()){ GpioPinEnable(&env->gsm.powerKey); SystemDelayMs(500); GpioPinDisable(&env->gsm.powerKey); SystemDelayMs(100); if(GpioPinGet(&env->gsm.PowerCheckGsm) == true){ return true; } } return false; } void PwmSim7600e_SimChipSelector(tSim7600ePower *env, tThisSimChip thisSimChip) { env->thisSimChip = thisSimChip; if(env->thisSimChip == CHIP_ERA) { GpioPinSet(&env->SimSelector, false); } else{ GpioPinSet(&env->SimSelector, true); } } bool PwmSim7600e_ShutDown(tSim7600ePower *env) { GpioPinDisable(&env->gsm.PowerGsm); GpioPinDisable(&env->gsm.disCharge); SystemDelayMs(100); GpioPinEnable(&env->dtr); SystemDelayMs(100); GpioPinEnable(&env->gsm.disCharge); SystemDelayMs(500); GpioPinDisable(&env->gsm.disCharge); SystemDelayMs(500); return false; } bool PwmSim7600e_WhiteIsLoad(tSim7600ePower *env) { // uint64_t time = SystemGetMs() + 5000; // // while (SystemGetMs() < time){ // if(GpioPinGet(&env->powerStatus)){ // return true; // } // } // return false; }