Created
June 9, 2024 01:24
-
-
Save neuberfran/74679666860132158c82e161814f97ec to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package neuberfran.com.jfran | |
import android.app.Activity | |
import android.os.Bundle | |
import android.os.Handler | |
import android.util.Log | |
import com.google.android.gms.tasks.Task | |
import com.google.android.gms.tasks.Tasks | |
import com.google.android.things.pio.Gpio | |
import com.google.android.things.pio.GpioCallback | |
import com.google.android.things.pio.PeripheralManager | |
import com.google.firebase.auth.FirebaseAuth | |
import com.google.firebase.firestore.DocumentSnapshot | |
import com.google.firebase.firestore.FirebaseFirestore | |
import com.google.firebase.firestore.SetOptions | |
import kotlinx.coroutines.Delay | |
import kotlinx.coroutines.delay | |
import neuberfran.com.jfran.BoardDefaults | |
import neuberfran.com.jfran.model.FireFran | |
import neuberfran.com.jfran.model.FireFranB | |
import neuberfran.com.jfran.repository.FireRepositoryB | |
import timber.log.Timber | |
import java.io.IOException | |
import java.util.logging.Logger | |
var data1 = hashMapOf("cercastate" to false) | |
var data2 = hashMapOf("cercastate" to true) | |
var data3 = hashMapOf("garagestate" to false) | |
var data4 = hashMapOf("garagestate" to true) | |
var data5 = hashMapOf("gpiocercastate" to false) | |
var data6 = hashMapOf("gpiogaragestate" to false) | |
class MainActivity : Activity() { | |
private val LOG = Logger.getLogger(this.javaClass.name) | |
private val TAG = MainActivity::class.java.simpleName | |
var db = FirebaseFirestore.getInstance() | |
var gpcercastate = db.collection("device-configs").document("cerca") | |
var gpgaragestate = db.collection("device-configs").document("garagem") | |
private var gpiocercastateb: Gpio? = null | |
private var gpiogaragestateb: Gpio? = null | |
private lateinit var buttoncerca: Gpio | |
private lateinit var buttonGarage: Gpio | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
Timber.plant(Timber.DebugTree()) | |
val manager = PeripheralManager.getInstance() | |
var gpiocercastateb: Gpio? = null | |
var gpiogaragestateb: Gpio? = null | |
try { | |
gpiocercastateb = manager.openGpio(BoardDefaults.getGPIOForButton5()) | |
this.gpiocercastateb = gpiocercastateb | |
gpiocercastateb.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW) | |
gpiocercastateb.setActiveType(Gpio.ACTIVE_LOW) | |
gpcercastate.addSnapshotListener { snapshot, e -> | |
if (e != null) { | |
Log.w(LOG.toString(), "Listen failed.", e) | |
return@addSnapshotListener | |
} | |
var vlrgpcerca = snapshot?.toObject(FireFran::class.java)?.value?.get("on") | |
var vlrgpiocercastateC=snapshot?.toObject(FireFran::class.java)?.gpiocercastate | |
Log.w(TAG, "Listen 94333 94333 94333." + vlrgpcerca) | |
if (vlrgpcerca == true && vlrgpiocercastateC!!) { // && !vlrcercastate!!) { | |
gpiocercastateb?.setValue(!gpiocercastateb!!.getValue()) | |
Log.w(TAG, "Listen 94347 94347 94347." + vlrgpcerca) | |
Handler().postDelayed({ | |
gpiocercastateb?.setValue(!gpiocercastateb!!.getValue()) | |
}, 700) | |
Log.w(TAG, "Listen 94347_2 94347_2 94347_2" + vlrgpcerca) | |
db.collection("device-configs").document("cerca") | |
.set(data5, SetOptions.merge()) | |
} else if (vlrgpcerca == false && vlrgpiocercastateC!!) { // && vlrgaragestab!!) { | |
gpiocercastateb?.setValue(!gpiocercastateb!!.getValue()) | |
Log.w(TAG, "Listen 94348 94348 94348" + vlrgpcerca) | |
Handler().postDelayed({ | |
gpiocercastateb?.setValue(!gpiocercastateb!!.getValue()) | |
}, 700) | |
db.collection("device-configs").document("cerca") | |
.set(data5, SetOptions.merge()) | |
Log.w(TAG, "Listen 94348_2 94348_2 94348_2" + vlrgpcerca) | |
} | |
} | |
} catch (e: IOException) { | |
Timber.d(e.toString(), "Error on PeripheralIO API") | |
} | |
// var gpiogaragestateb: Gpio? = null | |
try { | |
gpiogaragestateb = manager.openGpio(BoardDefaults.getGPIOForButton13()) | |
this.gpiogaragestateb = gpiogaragestateb | |
gpiogaragestateb.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW) | |
gpiogaragestateb.setActiveType(Gpio.ACTIVE_LOW) | |
gpgaragestate.addSnapshotListener { snapshot, e -> | |
if (e != null) { | |
Log.w(LOG.toString(), "Listen failed.", e) | |
return@addSnapshotListener | |
} | |
var vlrgaragesta=snapshot?.toObject(FireFranB::class.java)?.value?.get("openPercent") | |
var vlrgpiogaragestateC=snapshot?.toObject(FireFranB::class.java)?.gpiogaragestate | |
Log.w(TAG, "Listen 94336 94336 94336" + vlrgaragesta) | |
if (vlrgaragesta == 100 && vlrgpiogaragestateC!!) { // && !vlrgaragestab!!) { | |
gpiogaragestateb?.setValue(!gpiogaragestateb!!.getValue()) | |
Log.w(TAG, "Listen 94337 94337 94337." + vlrgaragesta) | |
Handler().postDelayed({ | |
gpiogaragestateb?.setValue(!gpiogaragestateb!!.getValue()) | |
}, 700) | |
Log.w(TAG, "Listen 94337_2 94337_2 94337_2" + vlrgaragesta) | |
db.collection("device-configs").document("garagem") | |
.set(data6, SetOptions.merge()) | |
} else if (vlrgaragesta == 0 && vlrgpiogaragestateC!!) { // && vlrgaragestab!!) { | |
gpiogaragestateb?.setValue(!gpiogaragestateb!!.getValue()) | |
Log.w(TAG, "Listen 94338 94338 94338" + vlrgaragesta) | |
Handler().postDelayed({ | |
gpiogaragestateb?.setValue(!gpiogaragestateb!!.getValue()) | |
//doSomethingHere() | |
}, 700) | |
db.collection("device-configs").document("garagem") | |
.set(data6, SetOptions.merge()) | |
Log.w(TAG, "Listen 94338_2 94338_2 94338_2" + vlrgaragesta) | |
} | |
} | |
} catch (e: IOException) { | |
Timber.d(e.toString(), "Error on PeripheralIO API") | |
} | |
var cercastate: Gpio? = null | |
try { | |
cercastate = manager.openGpio(BoardDefaults.getGPIOForButton20()) | |
Timber.d("98 98 98 ") | |
cercastate.setDirection(Gpio.DIRECTION_IN) | |
// Step 3. Enable edge trigger events. | |
cercastate.setEdgeTriggerType(Gpio.EDGE_BOTH) | |
cercastate.registerGpioCallback(cercaStateFun) | |
if (cercastate.value) { | |
db.collection("device-configs").document("cerca2") | |
.set(data2, SetOptions.merge()) | |
} else if (!cercastate.value) { | |
db.collection("device-configs").document("cerca2") | |
.set(data1, SetOptions.merge()) | |
} | |
} catch (e: IOException) { | |
Timber.d(e.toString(), "Error on PeripheralIO API") | |
} | |
var garagestate: Gpio? = null | |
try { | |
garagestate = manager.openGpio(BoardDefaults.getGPIOForButton21()) | |
Timber.d("99 99 99 ") | |
garagestate.setDirection(Gpio.DIRECTION_IN) | |
garagestate.setEdgeTriggerType(Gpio.EDGE_BOTH) | |
garagestate.registerGpioCallback(garageStateFun) | |
if (garagestate.value) { | |
db.collection("device-configs").document("garagem2") | |
.set(data4, SetOptions.merge()) | |
} else if (!garagestate.value) { | |
db.collection("device-configs").document("garagem2") | |
.set(data3, SetOptions.merge()) | |
} | |
} catch (e: IOException) { | |
Timber.d(e.toString(), "Error on PeripheralIO API") | |
} | |
} | |
var cercaStateFun = object : GpioCallback { | |
override fun onGpioEdge(buttoncerca: Gpio): Boolean { | |
Thread(Runnable { | |
if (buttoncerca.value) { | |
db.collection("device-configs").document("cerca2") | |
.set(data2, SetOptions.merge()) | |
Timber.d("passei 910_1 passei 910_1 passei 910_1") | |
} else if (!buttoncerca.value) { | |
db.collection("device-configs").document("cerca2").set( | |
data1, SetOptions.merge() | |
) | |
Timber.d("passei 911 passei 911 passei 911" + buttoncerca.value) | |
} | |
}).start() | |
return true | |
} | |
override fun onGpioError(gpio: Gpio?, error: Int) = Timber.d("$gpio Error event $error") | |
} | |
var garageStateFun = object : GpioCallback { | |
override fun onGpioEdge(buttonGarage: Gpio): Boolean { | |
Thread(Runnable { | |
Timber.d("GPIO changed, button 920 920 920" + buttonGarage.value) | |
if (buttonGarage.value) { | |
db.collection("device-configs").document("garagem2") | |
.set(data4, SetOptions.merge()) | |
Timber.d("passei 920_1 passei 920_1 passei 920_1") | |
} else if (!buttonGarage.value) { | |
db.collection("device-configs").document("garagem2").set( | |
data3, SetOptions.merge() | |
) | |
Timber.d("passei 921 passei 921 passei 921" + buttonGarage.value) | |
} | |
}).start() | |
return true | |
} | |
override fun onGpioError(gpio: Gpio?, error: Int) = Timber.d("$gpio Error event $error") | |
} | |
override fun onStop() { | |
super.onStop() | |
gpiocercastateb?.close() | |
gpiogaragestateb?.close() | |
} | |
override fun onStart() { | |
super.onStart() | |
// loginFirebase() | |
} | |
// private fun loginFirebase() { | |
// val firebase = FirebaseAuth.getInstance() | |
// firebase.signInAnonymously() | |
// .addOnSuccessListener { Timber.d("Firebase logged in successfully") } | |
// .addOnFailureListener { Timber.e("Failed to login $it") } | |
// } | |
override fun onDestroy() { | |
super.onDestroy() | |
buttoncerca.unregisterGpioCallback(cercaStateFun) | |
buttoncerca.close() | |
buttonGarage.unregisterGpioCallback(garageStateFun) | |
buttonGarage.close() | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment