|
@@ -1,100 +0,0 @@
|
|
|
-#include "module.h"
|
|
|
-#include "lauxlib.h"
|
|
|
-#include "platform.h"
|
|
|
-#include "user_interface.h"
|
|
|
-#include "rom.h"
|
|
|
-
|
|
|
-//#include "driver/easygpio.h"
|
|
|
-//static Ping_Data pingA;
|
|
|
-#define defPulseLen 185
|
|
|
-#define defProtocol 1
|
|
|
-#define defRepeat 10
|
|
|
-#define defBits 24
|
|
|
-static void ICACHE_FLASH_ATTR transmit(int pin, int pulseLen, int nHighPulses, int nLowPulses) {
|
|
|
- platform_gpio_write(pin, 1);
|
|
|
- os_delay_us(pulseLen*nHighPulses);
|
|
|
- platform_gpio_write(pin, 0);
|
|
|
- os_delay_us(pulseLen*nLowPulses);
|
|
|
-}
|
|
|
-//rc.send(4,267715,24,185,1,10) --GPIO, code, bits, pulselen, protocol, repeat
|
|
|
-static int ICACHE_FLASH_ATTR rc_send(lua_State* L) {
|
|
|
- const uint8_t pin = luaL_checkinteger(L, 1);
|
|
|
- platform_gpio_mode(pin, PLATFORM_GPIO_OUTPUT, PLATFORM_GPIO_FLOAT);
|
|
|
- //platform_gpio_mode(pin, PLATFORM_GPIO_OUTPUT, PLATFORM_GPIO_PULLUP);
|
|
|
- //platform_gpio_mode(pin, PLATFORM_GPIO_OUTPUT, PLATFORM_GPIO_PULLDOWN);
|
|
|
- platform_gpio_write(pin, 0);
|
|
|
- long code = luaL_checklong(L, 2);
|
|
|
- //const uint8_t bits = luaL_checkinteger(L, 3);
|
|
|
- uint8_t bits = luaL_checkinteger(L, 3);
|
|
|
- const uint8_t pulseLen = luaL_checkinteger(L, 4);
|
|
|
- const uint8_t Protocol = luaL_checkinteger(L, 5);
|
|
|
- const uint8_t repeat = luaL_checkinteger(L, 6);
|
|
|
- NODE_ERR("pulseLen:%d\n",pulseLen);
|
|
|
- NODE_ERR("Protocol:%d\n",Protocol);
|
|
|
- NODE_ERR("repeat:%d\n",repeat);
|
|
|
- NODE_ERR("send:");
|
|
|
-
|
|
|
- platform_print_deprecation_note("rc",
|
|
|
- "in the next release. Use rfswitch module instead.");
|
|
|
-
|
|
|
- int c,k,nRepeat;
|
|
|
- bits = bits-1;
|
|
|
- for (c = bits; c >= 0; c--)
|
|
|
- {
|
|
|
- k = code >> c;
|
|
|
- if (k & 1)
|
|
|
- NODE_ERR("1");
|
|
|
- else
|
|
|
- NODE_ERR("0");
|
|
|
- }
|
|
|
- NODE_ERR("\n");
|
|
|
- for (nRepeat=0; nRepeat<repeat; nRepeat++) {
|
|
|
- for (c = bits; c >= 0; c--)
|
|
|
- {
|
|
|
- k = code >> c;
|
|
|
- if (k & 1){
|
|
|
- //send1
|
|
|
- if(Protocol==1){
|
|
|
- transmit(pin,pulseLen,3,1);
|
|
|
- }else if(Protocol==2){
|
|
|
- transmit(pin,pulseLen,2,1);
|
|
|
- }else if(Protocol==3){
|
|
|
- transmit(pin,pulseLen,9,6);
|
|
|
- }
|
|
|
- }
|
|
|
- else{
|
|
|
- //send0
|
|
|
- if(Protocol==1){
|
|
|
- transmit(pin,pulseLen,1,3);
|
|
|
- }else if(Protocol==2){
|
|
|
- transmit(pin,pulseLen,1,2);
|
|
|
- }else if(Protocol==3){
|
|
|
- transmit(pin,pulseLen,4,11);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //sendSync();
|
|
|
- if(Protocol==1){
|
|
|
- transmit(pin,pulseLen,1,31);
|
|
|
- }else if(Protocol==2){
|
|
|
- transmit(pin,pulseLen,1,10);
|
|
|
- }else if(Protocol==3){
|
|
|
- transmit(pin,pulseLen,1,71);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return 1;
|
|
|
-}
|
|
|
-
|
|
|
-// Module function map
|
|
|
-LROT_BEGIN(rc, NULL, 0)
|
|
|
- LROT_FUNCENTRY( send, rc_send )
|
|
|
-LROT_END(rc, NULL, 0)
|
|
|
-
|
|
|
-
|
|
|
-int luaopen_rc(lua_State *L) {
|
|
|
- // TODO: Make sure that the GPIO system is initialized
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-NODEMCU_MODULE(RC, "rc", rc, luaopen_rc);
|