sforkowany z mirror/meshtastic-firmware
multichannel send/rx kinda works
rodzic
ae6b7e7259
commit
aa8b86c6b2
|
@ -15,11 +15,17 @@ You probably don't care about this section - skip to the next one.
|
|||
* DONE enable remote setttings access by moving settings operations into a regular plugin (move settings ops out of PhoneAPI)
|
||||
* DONE move portnum up?
|
||||
* DONE remove region specific builds from the firmware
|
||||
* test single channel
|
||||
* test single channel without python
|
||||
* test single channel with python
|
||||
* implement 'get channels' Admin operation
|
||||
* use get-channels from python
|
||||
* use set-channel from python
|
||||
* test multi channel
|
||||
* pick default random admin key
|
||||
* restrict gpio & serial & settings operations to the admin channel (unless local to the current node)
|
||||
* add gui in android app for setting region
|
||||
* make an alpha channel for the python API
|
||||
* warn in python api if we are too new to talk to the device code
|
||||
* make a post warning about 1.2, telling how to stay on old android & python clients. link to this from the android dialog message and python version warning.
|
||||
* "FIXME - move the radioconfig/user/channel READ operations into SettingsMessage as well"
|
||||
* DONE scrub protobufs to make sure they are absoloute minimum wiresize (in particular Data, ChannelSets and positions)
|
||||
* change syncword
|
||||
|
@ -34,11 +40,10 @@ You probably don't care about this section - skip to the next one.
|
|||
* DONE make all subpackets different versions of data
|
||||
* DONE move routing control into a data packet
|
||||
* have phoneapi done via plugin
|
||||
* figure out how to add micro_delta to position, make it so that phone apps don't need to understand it?
|
||||
* DONE figure out how to add micro_delta to position, make it so that phone apps don't need to understand it?
|
||||
* only send battery updates a max of once a minute
|
||||
* add multichannel support in python
|
||||
* add channel selection for sending
|
||||
* record recevied channel in meshpacket
|
||||
* add python channel selection for sending
|
||||
* DONE record recevied channel in meshpacket
|
||||
* test remote settings operations (confirm it works 3 hops away)
|
||||
* add channel restrictions for plugins (and restrict routing plugin to the "control" channel)
|
||||
* make a primaryChannel global and properly maintain it when the phone sends setChannel
|
||||
|
|
2
proto
2
proto
|
@ -1 +1 @@
|
|||
Subproject commit f6ff4cc0c98b201342c32776eeeb9ace83b450dd
|
||||
Subproject commit 7a5875d9639a0682bd36d7e118bf26d7b4d733be
|
|
@ -32,7 +32,8 @@ void MeshPlugin::callPlugins(const MeshPacket &mp)
|
|||
assert(mp.which_payloadVariant == MeshPacket_decoded_tag); // I think we are guarnteed the packet is decoded by this point?
|
||||
|
||||
// Was this message directed to us specifically? Will be false if we are sniffing someone elses packets
|
||||
bool toUs = mp.to == NODENUM_BROADCAST || mp.to == nodeDB.getNodeNum();
|
||||
auto ourNodeNum = nodeDB.getNodeNum();
|
||||
bool toUs = mp.to == NODENUM_BROADCAST || mp.to == ourNodeNum;
|
||||
for (auto i = plugins->begin(); i != plugins->end(); ++i) {
|
||||
auto &pi = **i;
|
||||
|
||||
|
@ -45,8 +46,8 @@ void MeshPlugin::callPlugins(const MeshPacket &mp)
|
|||
|
||||
bool handled = pi.handleReceived(mp);
|
||||
|
||||
// Possibly send replies (but only if the message was directed to us specifically, i.e. not for promiscious sniffing)
|
||||
if (mp.decoded.want_response && toUs) {
|
||||
// Possibly send replies (but only if the message was directed to us specifically, i.e. not for promiscious sniffing), also not if we sent it
|
||||
if (mp.decoded.want_response && toUs && mp.from != ourNodeNum) {
|
||||
pi.sendResponse(mp);
|
||||
DEBUG_MSG("Plugin %s sent a response\n", pi.name);
|
||||
}
|
||||
|
|
|
@ -148,7 +148,7 @@ void NodeDB::installDefaultDeviceState()
|
|||
// Restore region if possible
|
||||
if (oldRegionCode != RegionCode_Unset)
|
||||
radioConfig.preferences.region = oldRegionCode;
|
||||
if (oldRegion.length())
|
||||
if (oldRegion.length()) // If the old style region was set, try to keep it up-to-date
|
||||
strcpy(myNodeInfo.region, oldRegion.c_str());
|
||||
}
|
||||
|
||||
|
@ -400,7 +400,6 @@ void NodeDB::updateUser(uint32_t nodeId, const User &p)
|
|||
void NodeDB::updateFrom(const MeshPacket &mp)
|
||||
{
|
||||
if (mp.which_payloadVariant == MeshPacket_decoded_tag) {
|
||||
const Data &p = mp.decoded;
|
||||
DEBUG_MSG("Update DB node 0x%x, rx_time=%u\n", mp.from, mp.rx_time);
|
||||
|
||||
NodeInfo *info = getOrCreateNode(mp.from);
|
||||
|
|
|
@ -101,10 +101,6 @@ class PhoneAPI
|
|||
*/
|
||||
virtual void onNowHasData(uint32_t fromRadioNum) {}
|
||||
|
||||
void handleSetOwner(const User &o);
|
||||
void handleSetChannel(const Channel &cc);
|
||||
void handleSetRadio(const RadioConfig &r);
|
||||
|
||||
private:
|
||||
/**
|
||||
* Handle a packet that the phone wants us to send. It is our responsibility to free the packet to the pool
|
||||
|
|
|
@ -274,7 +274,7 @@ void RadioLibInterface::handleReceiveInterrupt()
|
|||
mp->from = h->from;
|
||||
mp->to = h->to;
|
||||
mp->id = h->id;
|
||||
mp->channel = h->id;
|
||||
mp->channel = h->channel;
|
||||
assert(HOP_MAX <= PACKET_FLAGS_HOP_MASK); // If hopmax changes, carefully check this code
|
||||
mp->hop_limit = h->flags & PACKET_FLAGS_HOP_MASK;
|
||||
mp->want_ack = !!(h->flags & PACKET_FLAGS_WANT_ACK_MASK);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[VERSION]
|
||||
major = 1
|
||||
minor = 1
|
||||
build = 48
|
||||
minor = 2
|
||||
build = 0
|
||||
|
|
Ładowanie…
Reference in New Issue