Skip to content

Update items based on ide #29

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jan 5, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
105 changes: 105 additions & 0 deletions NexGpio.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
/**
* @file NexGpio.cpp
*
* The implementation of class NexGpio.
*
* @author Wu Pengfei (email:<[email protected]>)
* @date 2015/8/13
* @copyright
* Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*/
#include "NexGpio.h"

bool NexGpio::pin_mode(uint32_t port,uint32_t mode,uint32_t control_id)
{
char buf;
String cmd;

cmd += "cfgpio ";
buf = port + '0';
cmd += buf;
cmd += ',';
buf = mode + '0';
cmd += buf;
cmd += ',';
buf = control_id = '0';
cmd += buf;

sendCommand(cmd.c_str());
return recvRetCommandFinished();

}

bool NexGpio::digital_write(uint32_t port,uint32_t value)
{
String cmd;
char buf;

cmd += "pio";
buf = port + '0';
cmd += buf;
cmd += '=';
buf = value + '0';
cmd += buf;

sendCommand(cmd.c_str());
return recvRetCommandFinished();
}

uint32_t NexGpio::digital_read(uint32_t port)
{
uint32_t number;
char buf;

String cmd = String("get ");
cmd += "pio";
buf = port + '0';
cmd += buf;

sendCommand(cmd.c_str());
recvRetNumber(&number);
return number;
}

bool NexGpio::analog_write(uint32_t port,uint32_t value)
{
char buf[10] = {0};
char c;
String cmd;

utoa(value, buf, 10);
cmd += "pwm";
c = port + '0';
cmd += c;
cmd += '=';
cmd += buf;

Serial.print(cmd);
sendCommand(cmd.c_str());
return recvRetCommandFinished();
}

bool NexGpio::set_pwmfreq(uint32_t value)
{
char buf[10] = {0};
String cmd;

utoa(value, buf, 10);
cmd += "pwmf";
cmd += '=';
cmd += buf;

sendCommand(cmd.c_str());
return recvRetCommandFinished();
}

uint32_t NexGpio::get_pwmfreq(uint32_t *number)
{
String cmd = String("get pwmf");
sendCommand(cmd.c_str());
return recvRetNumber(number);
}
102 changes: 102 additions & 0 deletions NexGpio.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/**
* @file NexGpio.h
*
* The definition of class NexGpio.
*
* @author Wu Pengfei (email:<[email protected]>)
* @date 2015/8/13
*
* @copyright
* Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*/

#ifndef _NEXGPIO_H
#define _NEXGPIO_H

#include "NexTouch.h"
#include "NexHardware.h"
/**
* @addtogroup Component
* @{
*/

/**
* NexGpio component.
*/

class NexGpio
{
public:
/**
* Set gpio mode
*
* @param port - the gpio port number
* @param mode - set gpio port mode(0--Pull on the input
* 1--the control input binding
* 2--Push-pull output
* 3--pwm output
* 4--open mode leakage)
* @param control_id - nextion controls id ,when the modeel is 1 to be valid
* @return true if success, false for failure
*/

bool pin_mode(uint32_t port,uint32_t mode,uint32_t control_id);

/**
* write a HIGH or a LOW value to a digital pin
*
* @param port - the gpio port number
* @param value - HIGH or LOW
* @return true if success, false for failure
*/

bool digital_write(uint32_t port,uint32_t value);

/**
* read a HIGH or a LOW value to a digital pin
*
* @param port - the gpio port number
* @return the value from a specified digital pin, either high or low
*/

uint32_t digital_read(uint32_t port);

/**
* writes an analog value (PWM wave) to a pin
*
* @param port - the gpio port number
* @param value - the duty cycle: between 0 (always off) and 100 (always on).
* @return true if success, false for failure
*/

bool analog_write(uint32_t port,uint32_t value);

/**
* writes pwm output frequency
*
* @param value - the frequency: between 1 and 65535
* @return true if success, false for failure
*/

bool set_pwmfreq(uint32_t value);

/**
* read pwm output frequency
*
* @param number - the frequency
* @return true if success, false for failure
*/

uint32_t get_pwmfreq(uint32_t *number);

};

/**
* @}
*/

#endif /* #ifndef __NEXGPIO_H__ */
Loading