mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-28 20:52:02 +00:00
Compare commits
9 Commits
master
...
lora-param
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
42c4af42a9 | ||
|
|
8dd85d16be | ||
|
|
0b3d04fa9f | ||
|
|
9d3f189d90 | ||
|
|
a4875c234f | ||
|
|
0c840440f8 | ||
|
|
3d605cec65 | ||
|
|
fdbd642e0e | ||
|
|
9fbbb9aa9a |
204
.github/workflows/models_issue_triage.yml
vendored
204
.github/workflows/models_issue_triage.yml
vendored
@@ -1,204 +0,0 @@
|
|||||||
name: Issue Triage (Models)
|
|
||||||
|
|
||||||
on:
|
|
||||||
issues:
|
|
||||||
types: [opened]
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
issues: write
|
|
||||||
models: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.event.issue.number }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
triage:
|
|
||||||
if: ${{ github.repository == 'meshtastic/firmware' && github.event.issue.user.type != 'Bot' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
# Step 1: Quality check (spam/AI-slop detection) - runs first, exits early if spam
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
- name: Detect spam or low-quality content
|
|
||||||
uses: actions/ai-inference@v2
|
|
||||||
id: quality
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
max-tokens: 20
|
|
||||||
prompt: |
|
|
||||||
Is this GitHub issue spam, AI-generated slop, or low quality?
|
|
||||||
|
|
||||||
Title: ${{ github.event.issue.title }}
|
|
||||||
Body: ${{ github.event.issue.body }}
|
|
||||||
|
|
||||||
Respond with exactly one of: spam, ai-generated, needs-review, ok
|
|
||||||
system-prompt: You detect spam and low-quality contributions. Be conservative - only flag obvious spam or AI slop.
|
|
||||||
model: openai/gpt-4o-mini
|
|
||||||
|
|
||||||
- name: Apply quality label if needed
|
|
||||||
if: steps.quality.outputs.response != '' && steps.quality.outputs.response != 'ok'
|
|
||||||
uses: actions/github-script@v8
|
|
||||||
env:
|
|
||||||
QUALITY_LABEL: ${{ steps.quality.outputs.response }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const label = (process.env.QUALITY_LABEL || '').trim().toLowerCase();
|
|
||||||
const labelMeta = {
|
|
||||||
'spam': { color: 'd73a4a', description: 'Possible spam' },
|
|
||||||
'ai-generated': { color: 'fbca04', description: 'Possible AI-generated low-quality content' },
|
|
||||||
'needs-review': { color: 'f9d0c4', description: 'Needs human review' },
|
|
||||||
};
|
|
||||||
const meta = labelMeta[label];
|
|
||||||
if (!meta) return;
|
|
||||||
|
|
||||||
// Ensure label exists
|
|
||||||
try {
|
|
||||||
await github.rest.issues.getLabel({ owner: context.repo.owner, repo: context.repo.repo, name: label });
|
|
||||||
} catch (e) {
|
|
||||||
if (e.status !== 404) throw e;
|
|
||||||
await github.rest.issues.createLabel({ owner: context.repo.owner, repo: context.repo.repo, name: label, color: meta.color, description: meta.description });
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply label
|
|
||||||
await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.payload.issue.number, labels: [label] });
|
|
||||||
|
|
||||||
// Set output to skip remaining steps
|
|
||||||
core.setOutput('is_spam', 'true');
|
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
# Step 2: Duplicate detection - only if not spam
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
- name: Detect duplicate issues
|
|
||||||
if: steps.quality.outputs.response == 'ok' || steps.quality.outputs.response == ''
|
|
||||||
uses: pelikhan/action-genai-issue-dedup@bdb3b5d9451c1090ffcdf123d7447a5e7c7a2528 # v0.0.19
|
|
||||||
with:
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
# Step 3: Completeness check + auto-labeling (combined into one AI call)
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
- name: Determine if completeness check should be skipped
|
|
||||||
if: steps.quality.outputs.response == 'ok' || steps.quality.outputs.response == ''
|
|
||||||
uses: actions/github-script@v8
|
|
||||||
id: check-skip
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const title = (context.payload.issue.title || '').toLowerCase();
|
|
||||||
const labels = (context.payload.issue.labels || []).map(label => label.name);
|
|
||||||
const hasFeatureRequest = title.includes('feature request');
|
|
||||||
const hasEnhancement = labels.includes('enhancement');
|
|
||||||
const shouldSkip = hasFeatureRequest && hasEnhancement;
|
|
||||||
core.setOutput('should_skip', shouldSkip ? 'true' : 'false');
|
|
||||||
|
|
||||||
- name: Analyze issue completeness and determine labels
|
|
||||||
if: (steps.quality.outputs.response == 'ok' || steps.quality.outputs.response == '') && steps.check-skip.outputs.should_skip != 'true'
|
|
||||||
uses: actions/ai-inference@v2
|
|
||||||
id: analysis
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
prompt: |
|
|
||||||
Analyze this GitHub issue for completeness and determine if it needs labels.
|
|
||||||
|
|
||||||
If this looks like a bug on the device/firmware (crash, reboot, lockup, radio issues, GPS issues, display issues, power/sleep issues), request device logs and explain how to get them:
|
|
||||||
|
|
||||||
Web Flasher logs:
|
|
||||||
- Go to https://flasher.meshtastic.org
|
|
||||||
- Connect the device via USB and click Connect
|
|
||||||
- Open the device console/log output, reproduce the problem, then copy/download and attach/paste the logs
|
|
||||||
|
|
||||||
Meshtastic CLI logs:
|
|
||||||
- Run: meshtastic --port <serial-port> --noproto
|
|
||||||
- Reproduce the problem, then copy/paste the terminal output
|
|
||||||
|
|
||||||
Also request key context if missing: device model/variant, firmware version, region, steps to reproduce, expected vs actual.
|
|
||||||
|
|
||||||
Respond ONLY with JSON:
|
|
||||||
{
|
|
||||||
"complete": true|false,
|
|
||||||
"comment": "Your helpful comment requesting missing info, or empty string if complete",
|
|
||||||
"label": "needs-logs" | "needs-info" | "none"
|
|
||||||
}
|
|
||||||
|
|
||||||
Use "needs-logs" if this is a device bug AND no logs are attached.
|
|
||||||
Use "needs-info" if basic info like firmware version or steps to reproduce are missing.
|
|
||||||
Use "none" if the issue is complete or is a feature request.
|
|
||||||
|
|
||||||
Title: ${{ github.event.issue.title }}
|
|
||||||
Body: ${{ github.event.issue.body }}
|
|
||||||
system-prompt: You are a helpful assistant that triages GitHub issues. Be conservative with labels.
|
|
||||||
model: openai/gpt-4o-mini
|
|
||||||
|
|
||||||
- name: Process analysis result
|
|
||||||
if: (steps.quality.outputs.response == 'ok' || steps.quality.outputs.response == '') && steps.check-skip.outputs.should_skip != 'true' && steps.analysis.outputs.response != ''
|
|
||||||
uses: actions/github-script@v8
|
|
||||||
id: process
|
|
||||||
env:
|
|
||||||
AI_RESPONSE: ${{ steps.analysis.outputs.response }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const raw = (process.env.AI_RESPONSE || '').trim();
|
|
||||||
|
|
||||||
let complete = false;
|
|
||||||
let comment = '';
|
|
||||||
let label = 'none';
|
|
||||||
|
|
||||||
try {
|
|
||||||
const parsed = JSON.parse(raw);
|
|
||||||
complete = !!parsed.complete;
|
|
||||||
comment = (parsed.comment ?? '').toString().trim();
|
|
||||||
label = (parsed.label ?? 'none').toString().trim().toLowerCase();
|
|
||||||
} catch {
|
|
||||||
// If JSON parse fails, treat as incomplete with raw response as comment
|
|
||||||
complete = false;
|
|
||||||
comment = raw;
|
|
||||||
label = 'none';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate label
|
|
||||||
const allowedLabels = new Set(['needs-logs', 'needs-info', 'none']);
|
|
||||||
if (!allowedLabels.has(label)) label = 'none';
|
|
||||||
|
|
||||||
core.setOutput('should_comment', (!complete && comment.length > 0) ? 'true' : 'false');
|
|
||||||
core.setOutput('comment_body', comment);
|
|
||||||
core.setOutput('label', label);
|
|
||||||
|
|
||||||
- name: Apply triage label
|
|
||||||
if: steps.process.outputs.label != '' && steps.process.outputs.label != 'none'
|
|
||||||
uses: actions/github-script@v8
|
|
||||||
env:
|
|
||||||
LABEL_NAME: ${{ steps.process.outputs.label }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const label = process.env.LABEL_NAME;
|
|
||||||
const labelMeta = {
|
|
||||||
'needs-logs': { color: 'cfd3d7', description: 'Device logs requested for triage' },
|
|
||||||
'needs-info': { color: 'f9d0c4', description: 'More information requested for triage' },
|
|
||||||
};
|
|
||||||
const meta = labelMeta[label];
|
|
||||||
if (!meta) return;
|
|
||||||
|
|
||||||
// Ensure label exists
|
|
||||||
try {
|
|
||||||
await github.rest.issues.getLabel({ owner: context.repo.owner, repo: context.repo.repo, name: label });
|
|
||||||
} catch (e) {
|
|
||||||
if (e.status !== 404) throw e;
|
|
||||||
await github.rest.issues.createLabel({ owner: context.repo.owner, repo: context.repo.repo, name: label, color: meta.color, description: meta.description });
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply label
|
|
||||||
await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.payload.issue.number, labels: [label] });
|
|
||||||
|
|
||||||
- name: Comment on issue
|
|
||||||
if: steps.process.outputs.should_comment == 'true'
|
|
||||||
uses: actions/github-script@v8
|
|
||||||
env:
|
|
||||||
COMMENT_BODY: ${{ steps.process.outputs.comment_body }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
await github.rest.issues.createComment({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: context.payload.issue.number,
|
|
||||||
body: process.env.COMMENT_BODY
|
|
||||||
});
|
|
||||||
138
.github/workflows/models_pr_triage.yml
vendored
138
.github/workflows/models_pr_triage.yml
vendored
@@ -1,138 +0,0 @@
|
|||||||
name: PR Triage (Models)
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types: [opened]
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
issues: write
|
|
||||||
models: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
triage:
|
|
||||||
if: ${{ github.repository == 'meshtastic/firmware' && github.event.pull_request.user.type != 'Bot' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
# Step 1: Check if PR already has automation/type labels (skip if so)
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
- name: Check existing labels
|
|
||||||
uses: actions/github-script@v8
|
|
||||||
id: check-labels
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const skipLabels = new Set(['automation']);
|
|
||||||
const typeLabels = new Set(['bugfix', 'hardware-support', 'enhancement', 'dependencies', 'submodules', 'github_actions', 'trunk', 'cleanup']);
|
|
||||||
const prLabels = context.payload.pull_request.labels.map(l => l.name);
|
|
||||||
|
|
||||||
const shouldSkipAll = prLabels.some(l => skipLabels.has(l));
|
|
||||||
const hasTypeLabel = prLabels.some(l => typeLabels.has(l));
|
|
||||||
|
|
||||||
core.setOutput('skip_all', shouldSkipAll ? 'true' : 'false');
|
|
||||||
core.setOutput('has_type_label', hasTypeLabel ? 'true' : 'false');
|
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
# Step 2: Quality check (spam/AI-slop detection)
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
- name: Detect spam or low-quality content
|
|
||||||
if: steps.check-labels.outputs.skip_all != 'true'
|
|
||||||
uses: actions/ai-inference@v2
|
|
||||||
id: quality
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
max-tokens: 20
|
|
||||||
prompt: |
|
|
||||||
Is this GitHub pull request spam, AI-generated slop, or low quality?
|
|
||||||
|
|
||||||
Title: ${{ github.event.pull_request.title }}
|
|
||||||
Body: ${{ github.event.pull_request.body }}
|
|
||||||
|
|
||||||
Respond with exactly one of: spam, ai-generated, needs-review, ok
|
|
||||||
system-prompt: You detect spam and low-quality contributions. Be conservative - only flag obvious spam or AI slop.
|
|
||||||
model: openai/gpt-4o-mini
|
|
||||||
|
|
||||||
- name: Apply quality label if needed
|
|
||||||
if: steps.check-labels.outputs.skip_all != 'true' && steps.quality.outputs.response != '' && steps.quality.outputs.response != 'ok'
|
|
||||||
uses: actions/github-script@v8
|
|
||||||
id: quality-label
|
|
||||||
env:
|
|
||||||
QUALITY_LABEL: ${{ steps.quality.outputs.response }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const label = (process.env.QUALITY_LABEL || '').trim().toLowerCase();
|
|
||||||
const labelMeta = {
|
|
||||||
'spam': { color: 'd73a4a', description: 'Possible spam' },
|
|
||||||
'ai-generated': { color: 'fbca04', description: 'Possible AI-generated low-quality content' },
|
|
||||||
'needs-review': { color: 'f9d0c4', description: 'Needs human review' },
|
|
||||||
};
|
|
||||||
const meta = labelMeta[label];
|
|
||||||
if (!meta) return;
|
|
||||||
|
|
||||||
// Ensure label exists
|
|
||||||
try {
|
|
||||||
await github.rest.issues.getLabel({ owner: context.repo.owner, repo: context.repo.repo, name: label });
|
|
||||||
} catch (e) {
|
|
||||||
if (e.status !== 404) throw e;
|
|
||||||
await github.rest.issues.createLabel({ owner: context.repo.owner, repo: context.repo.repo, name: label, color: meta.color, description: meta.description });
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply label
|
|
||||||
await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.payload.pull_request.number, labels: [label] });
|
|
||||||
|
|
||||||
core.setOutput('is_spam', 'true');
|
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
# Step 3: Auto-label PR type (bugfix/hardware-support/enhancement)
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
|
||||||
- name: Classify PR for labeling
|
|
||||||
if: steps.check-labels.outputs.skip_all != 'true' && steps.check-labels.outputs.has_type_label != 'true' && (steps.quality.outputs.response == 'ok' || steps.quality.outputs.response == '')
|
|
||||||
uses: actions/ai-inference@v2
|
|
||||||
id: classify
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
max-tokens: 30
|
|
||||||
prompt: |
|
|
||||||
Classify this pull request into exactly one category.
|
|
||||||
|
|
||||||
Return exactly one of: bugfix, hardware-support, enhancement
|
|
||||||
|
|
||||||
Use bugfix if it fixes a bug, crash, or incorrect behavior.
|
|
||||||
Use hardware-support if it adds or improves support for a specific hardware device/variant.
|
|
||||||
Use enhancement if it adds a new feature, improves performance, or refactors code.
|
|
||||||
|
|
||||||
Title: ${{ github.event.pull_request.title }}
|
|
||||||
Body: ${{ github.event.pull_request.body }}
|
|
||||||
system-prompt: You classify pull requests into categories. Be conservative and pick the most appropriate single label.
|
|
||||||
model: openai/gpt-4o-mini
|
|
||||||
|
|
||||||
- name: Apply type label
|
|
||||||
if: steps.check-labels.outputs.skip_all != 'true' && steps.check-labels.outputs.has_type_label != 'true' && steps.classify.outputs.response != ''
|
|
||||||
uses: actions/github-script@v8
|
|
||||||
env:
|
|
||||||
TYPE_LABEL: ${{ steps.classify.outputs.response }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const label = (process.env.TYPE_LABEL || '').trim().toLowerCase();
|
|
||||||
const labelMeta = {
|
|
||||||
'bugfix': { color: 'd73a4a', description: 'Bug fix' },
|
|
||||||
'hardware-support': { color: '0e8a16', description: 'Hardware support addition or improvement' },
|
|
||||||
'enhancement': { color: 'a2eeef', description: 'New feature or enhancement' },
|
|
||||||
};
|
|
||||||
const meta = labelMeta[label];
|
|
||||||
if (!meta) return;
|
|
||||||
|
|
||||||
// Ensure label exists
|
|
||||||
try {
|
|
||||||
await github.rest.issues.getLabel({ owner: context.repo.owner, repo: context.repo.repo, name: label });
|
|
||||||
} catch (e) {
|
|
||||||
if (e.status !== 404) throw e;
|
|
||||||
await github.rest.issues.createLabel({ owner: context.repo.owner, repo: context.repo.repo, name: label, color: meta.color, description: meta.description });
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply label
|
|
||||||
await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.payload.pull_request.number, labels: [label] });
|
|
||||||
@@ -119,7 +119,7 @@ lib_deps =
|
|||||||
[device-ui_base]
|
[device-ui_base]
|
||||||
lib_deps =
|
lib_deps =
|
||||||
# renovate: datasource=git-refs depName=meshtastic/device-ui packageName=https://github.com/meshtastic/device-ui gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic/device-ui packageName=https://github.com/meshtastic/device-ui gitBranch=master
|
||||||
https://github.com/meshtastic/device-ui/archive/69739b84f87a91568d3c421498bc89977937a141.zip
|
https://github.com/meshtastic/device-ui/archive/37ad715b76cd6ca4aa500a4a4d9740e3cdf3e3cb.zip
|
||||||
|
|
||||||
; Common libs for environmental measurements in telemetry module
|
; Common libs for environmental measurements in telemetry module
|
||||||
[environmental_base]
|
[environmental_base]
|
||||||
|
|||||||
Submodule protobufs updated: bc63a57f9e...d9003b2b6c
@@ -27,15 +27,6 @@ PB_BIND(meshtastic_SharedContact, meshtastic_SharedContact, AUTO)
|
|||||||
PB_BIND(meshtastic_KeyVerificationAdmin, meshtastic_KeyVerificationAdmin, AUTO)
|
PB_BIND(meshtastic_KeyVerificationAdmin, meshtastic_KeyVerificationAdmin, AUTO)
|
||||||
|
|
||||||
|
|
||||||
PB_BIND(meshtastic_SensorConfig, meshtastic_SensorConfig, AUTO)
|
|
||||||
|
|
||||||
|
|
||||||
PB_BIND(meshtastic_SCD4X_config, meshtastic_SCD4X_config, AUTO)
|
|
||||||
|
|
||||||
|
|
||||||
PB_BIND(meshtastic_SEN5X_config, meshtastic_SEN5X_config, AUTO)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -77,9 +77,7 @@ typedef enum _meshtastic_AdminMessage_ModuleConfigType {
|
|||||||
/* TODO: REPLACE */
|
/* TODO: REPLACE */
|
||||||
meshtastic_AdminMessage_ModuleConfigType_DETECTIONSENSOR_CONFIG = 11,
|
meshtastic_AdminMessage_ModuleConfigType_DETECTIONSENSOR_CONFIG = 11,
|
||||||
/* TODO: REPLACE */
|
/* TODO: REPLACE */
|
||||||
meshtastic_AdminMessage_ModuleConfigType_PAXCOUNTER_CONFIG = 12,
|
meshtastic_AdminMessage_ModuleConfigType_PAXCOUNTER_CONFIG = 12
|
||||||
/* TODO: REPLACE */
|
|
||||||
meshtastic_AdminMessage_ModuleConfigType_STATUSMESSAGE_CONFIG = 13
|
|
||||||
} meshtastic_AdminMessage_ModuleConfigType;
|
} meshtastic_AdminMessage_ModuleConfigType;
|
||||||
|
|
||||||
typedef enum _meshtastic_AdminMessage_BackupLocation {
|
typedef enum _meshtastic_AdminMessage_BackupLocation {
|
||||||
@@ -171,48 +169,6 @@ typedef struct _meshtastic_KeyVerificationAdmin {
|
|||||||
uint32_t security_number;
|
uint32_t security_number;
|
||||||
} meshtastic_KeyVerificationAdmin;
|
} meshtastic_KeyVerificationAdmin;
|
||||||
|
|
||||||
typedef struct _meshtastic_SCD4X_config {
|
|
||||||
/* Set Automatic self-calibration enabled */
|
|
||||||
bool has_set_asc;
|
|
||||||
bool set_asc;
|
|
||||||
/* Recalibration target CO2 concentration in ppm (FRC or ASC) */
|
|
||||||
bool has_set_target_co2_conc;
|
|
||||||
uint32_t set_target_co2_conc;
|
|
||||||
/* Reference temperature in degC */
|
|
||||||
bool has_set_temperature;
|
|
||||||
float set_temperature;
|
|
||||||
/* Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure) */
|
|
||||||
bool has_set_altitude;
|
|
||||||
uint32_t set_altitude;
|
|
||||||
/* Sensor ambient pressure in Pa. 70000 - 120000 Pa (overrides altitude) */
|
|
||||||
bool has_set_ambient_pressure;
|
|
||||||
uint32_t set_ambient_pressure;
|
|
||||||
/* Perform a factory reset of the sensor */
|
|
||||||
bool has_factory_reset;
|
|
||||||
bool factory_reset;
|
|
||||||
/* Power mode for sensor (true for low power, false for normal) */
|
|
||||||
bool has_set_power_mode;
|
|
||||||
bool set_power_mode;
|
|
||||||
} meshtastic_SCD4X_config;
|
|
||||||
|
|
||||||
typedef struct _meshtastic_SEN5X_config {
|
|
||||||
/* Reference temperature in degC */
|
|
||||||
bool has_set_temperature;
|
|
||||||
float set_temperature;
|
|
||||||
/* One-shot mode (true for low power - one-shot mode, false for normal - continuous mode) */
|
|
||||||
bool has_set_one_shot_mode;
|
|
||||||
bool set_one_shot_mode;
|
|
||||||
} meshtastic_SEN5X_config;
|
|
||||||
|
|
||||||
typedef struct _meshtastic_SensorConfig {
|
|
||||||
/* SCD4X CO2 Sensor configuration */
|
|
||||||
bool has_scd4x_config;
|
|
||||||
meshtastic_SCD4X_config scd4x_config;
|
|
||||||
/* SEN5X PM Sensor configuration */
|
|
||||||
bool has_sen5x_config;
|
|
||||||
meshtastic_SEN5X_config sen5x_config;
|
|
||||||
} meshtastic_SensorConfig;
|
|
||||||
|
|
||||||
typedef PB_BYTES_ARRAY_T(8) meshtastic_AdminMessage_session_passkey_t;
|
typedef PB_BYTES_ARRAY_T(8) meshtastic_AdminMessage_session_passkey_t;
|
||||||
/* This message is handled by the Admin module and is responsible for all settings/channel read/write operations.
|
/* This message is handled by the Admin module and is responsible for all settings/channel read/write operations.
|
||||||
This message is used to do settings operations to both remote AND local nodes.
|
This message is used to do settings operations to both remote AND local nodes.
|
||||||
@@ -345,8 +301,6 @@ typedef struct _meshtastic_AdminMessage {
|
|||||||
bool nodedb_reset;
|
bool nodedb_reset;
|
||||||
/* Tell the node to reset into the OTA Loader */
|
/* Tell the node to reset into the OTA Loader */
|
||||||
meshtastic_AdminMessage_OTAEvent ota_request;
|
meshtastic_AdminMessage_OTAEvent ota_request;
|
||||||
/* Parameters and sensor configuration */
|
|
||||||
meshtastic_SensorConfig sensor_config;
|
|
||||||
};
|
};
|
||||||
/* The node generates this key and sends it with any get_x_response packets.
|
/* The node generates this key and sends it with any get_x_response packets.
|
||||||
The client MUST include the same key with any set_x commands. Key expires after 300 seconds.
|
The client MUST include the same key with any set_x commands. Key expires after 300 seconds.
|
||||||
@@ -369,8 +323,8 @@ extern "C" {
|
|||||||
#define _meshtastic_AdminMessage_ConfigType_ARRAYSIZE ((meshtastic_AdminMessage_ConfigType)(meshtastic_AdminMessage_ConfigType_DEVICEUI_CONFIG+1))
|
#define _meshtastic_AdminMessage_ConfigType_ARRAYSIZE ((meshtastic_AdminMessage_ConfigType)(meshtastic_AdminMessage_ConfigType_DEVICEUI_CONFIG+1))
|
||||||
|
|
||||||
#define _meshtastic_AdminMessage_ModuleConfigType_MIN meshtastic_AdminMessage_ModuleConfigType_MQTT_CONFIG
|
#define _meshtastic_AdminMessage_ModuleConfigType_MIN meshtastic_AdminMessage_ModuleConfigType_MQTT_CONFIG
|
||||||
#define _meshtastic_AdminMessage_ModuleConfigType_MAX meshtastic_AdminMessage_ModuleConfigType_STATUSMESSAGE_CONFIG
|
#define _meshtastic_AdminMessage_ModuleConfigType_MAX meshtastic_AdminMessage_ModuleConfigType_PAXCOUNTER_CONFIG
|
||||||
#define _meshtastic_AdminMessage_ModuleConfigType_ARRAYSIZE ((meshtastic_AdminMessage_ModuleConfigType)(meshtastic_AdminMessage_ModuleConfigType_STATUSMESSAGE_CONFIG+1))
|
#define _meshtastic_AdminMessage_ModuleConfigType_ARRAYSIZE ((meshtastic_AdminMessage_ModuleConfigType)(meshtastic_AdminMessage_ModuleConfigType_PAXCOUNTER_CONFIG+1))
|
||||||
|
|
||||||
#define _meshtastic_AdminMessage_BackupLocation_MIN meshtastic_AdminMessage_BackupLocation_FLASH
|
#define _meshtastic_AdminMessage_BackupLocation_MIN meshtastic_AdminMessage_BackupLocation_FLASH
|
||||||
#define _meshtastic_AdminMessage_BackupLocation_MAX meshtastic_AdminMessage_BackupLocation_SD
|
#define _meshtastic_AdminMessage_BackupLocation_MAX meshtastic_AdminMessage_BackupLocation_SD
|
||||||
@@ -395,9 +349,6 @@ extern "C" {
|
|||||||
#define meshtastic_KeyVerificationAdmin_message_type_ENUMTYPE meshtastic_KeyVerificationAdmin_MessageType
|
#define meshtastic_KeyVerificationAdmin_message_type_ENUMTYPE meshtastic_KeyVerificationAdmin_MessageType
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Initializer values for message structs */
|
/* Initializer values for message structs */
|
||||||
#define meshtastic_AdminMessage_init_default {0, {0}, {0, {0}}}
|
#define meshtastic_AdminMessage_init_default {0, {0}, {0, {0}}}
|
||||||
#define meshtastic_AdminMessage_InputEvent_init_default {0, 0, 0, 0}
|
#define meshtastic_AdminMessage_InputEvent_init_default {0, 0, 0, 0}
|
||||||
@@ -406,9 +357,6 @@ extern "C" {
|
|||||||
#define meshtastic_NodeRemoteHardwarePinsResponse_init_default {0, {meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default}}
|
#define meshtastic_NodeRemoteHardwarePinsResponse_init_default {0, {meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default, meshtastic_NodeRemoteHardwarePin_init_default}}
|
||||||
#define meshtastic_SharedContact_init_default {0, false, meshtastic_User_init_default, 0, 0}
|
#define meshtastic_SharedContact_init_default {0, false, meshtastic_User_init_default, 0, 0}
|
||||||
#define meshtastic_KeyVerificationAdmin_init_default {_meshtastic_KeyVerificationAdmin_MessageType_MIN, 0, 0, false, 0}
|
#define meshtastic_KeyVerificationAdmin_init_default {_meshtastic_KeyVerificationAdmin_MessageType_MIN, 0, 0, false, 0}
|
||||||
#define meshtastic_SensorConfig_init_default {false, meshtastic_SCD4X_config_init_default, false, meshtastic_SEN5X_config_init_default}
|
|
||||||
#define meshtastic_SCD4X_config_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
|
|
||||||
#define meshtastic_SEN5X_config_init_default {false, 0, false, 0}
|
|
||||||
#define meshtastic_AdminMessage_init_zero {0, {0}, {0, {0}}}
|
#define meshtastic_AdminMessage_init_zero {0, {0}, {0, {0}}}
|
||||||
#define meshtastic_AdminMessage_InputEvent_init_zero {0, 0, 0, 0}
|
#define meshtastic_AdminMessage_InputEvent_init_zero {0, 0, 0, 0}
|
||||||
#define meshtastic_AdminMessage_OTAEvent_init_zero {_meshtastic_OTAMode_MIN, {0, {0}}}
|
#define meshtastic_AdminMessage_OTAEvent_init_zero {_meshtastic_OTAMode_MIN, {0, {0}}}
|
||||||
@@ -416,9 +364,6 @@ extern "C" {
|
|||||||
#define meshtastic_NodeRemoteHardwarePinsResponse_init_zero {0, {meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero}}
|
#define meshtastic_NodeRemoteHardwarePinsResponse_init_zero {0, {meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero, meshtastic_NodeRemoteHardwarePin_init_zero}}
|
||||||
#define meshtastic_SharedContact_init_zero {0, false, meshtastic_User_init_zero, 0, 0}
|
#define meshtastic_SharedContact_init_zero {0, false, meshtastic_User_init_zero, 0, 0}
|
||||||
#define meshtastic_KeyVerificationAdmin_init_zero {_meshtastic_KeyVerificationAdmin_MessageType_MIN, 0, 0, false, 0}
|
#define meshtastic_KeyVerificationAdmin_init_zero {_meshtastic_KeyVerificationAdmin_MessageType_MIN, 0, 0, false, 0}
|
||||||
#define meshtastic_SensorConfig_init_zero {false, meshtastic_SCD4X_config_init_zero, false, meshtastic_SEN5X_config_init_zero}
|
|
||||||
#define meshtastic_SCD4X_config_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
|
|
||||||
#define meshtastic_SEN5X_config_init_zero {false, 0, false, 0}
|
|
||||||
|
|
||||||
/* Field tags (for use in manual encoding/decoding) */
|
/* Field tags (for use in manual encoding/decoding) */
|
||||||
#define meshtastic_AdminMessage_InputEvent_event_code_tag 1
|
#define meshtastic_AdminMessage_InputEvent_event_code_tag 1
|
||||||
@@ -440,17 +385,6 @@ extern "C" {
|
|||||||
#define meshtastic_KeyVerificationAdmin_remote_nodenum_tag 2
|
#define meshtastic_KeyVerificationAdmin_remote_nodenum_tag 2
|
||||||
#define meshtastic_KeyVerificationAdmin_nonce_tag 3
|
#define meshtastic_KeyVerificationAdmin_nonce_tag 3
|
||||||
#define meshtastic_KeyVerificationAdmin_security_number_tag 4
|
#define meshtastic_KeyVerificationAdmin_security_number_tag 4
|
||||||
#define meshtastic_SCD4X_config_set_asc_tag 1
|
|
||||||
#define meshtastic_SCD4X_config_set_target_co2_conc_tag 2
|
|
||||||
#define meshtastic_SCD4X_config_set_temperature_tag 3
|
|
||||||
#define meshtastic_SCD4X_config_set_altitude_tag 4
|
|
||||||
#define meshtastic_SCD4X_config_set_ambient_pressure_tag 5
|
|
||||||
#define meshtastic_SCD4X_config_factory_reset_tag 6
|
|
||||||
#define meshtastic_SCD4X_config_set_power_mode_tag 7
|
|
||||||
#define meshtastic_SEN5X_config_set_temperature_tag 1
|
|
||||||
#define meshtastic_SEN5X_config_set_one_shot_mode_tag 2
|
|
||||||
#define meshtastic_SensorConfig_scd4x_config_tag 1
|
|
||||||
#define meshtastic_SensorConfig_sen5x_config_tag 2
|
|
||||||
#define meshtastic_AdminMessage_get_channel_request_tag 1
|
#define meshtastic_AdminMessage_get_channel_request_tag 1
|
||||||
#define meshtastic_AdminMessage_get_channel_response_tag 2
|
#define meshtastic_AdminMessage_get_channel_response_tag 2
|
||||||
#define meshtastic_AdminMessage_get_owner_request_tag 3
|
#define meshtastic_AdminMessage_get_owner_request_tag 3
|
||||||
@@ -507,7 +441,6 @@ extern "C" {
|
|||||||
#define meshtastic_AdminMessage_factory_reset_config_tag 99
|
#define meshtastic_AdminMessage_factory_reset_config_tag 99
|
||||||
#define meshtastic_AdminMessage_nodedb_reset_tag 100
|
#define meshtastic_AdminMessage_nodedb_reset_tag 100
|
||||||
#define meshtastic_AdminMessage_ota_request_tag 102
|
#define meshtastic_AdminMessage_ota_request_tag 102
|
||||||
#define meshtastic_AdminMessage_sensor_config_tag 103
|
|
||||||
#define meshtastic_AdminMessage_session_passkey_tag 101
|
#define meshtastic_AdminMessage_session_passkey_tag 101
|
||||||
|
|
||||||
/* Struct field encoding specification for nanopb */
|
/* Struct field encoding specification for nanopb */
|
||||||
@@ -568,8 +501,7 @@ X(a, STATIC, ONEOF, INT32, (payload_variant,shutdown_seconds,shutdown_se
|
|||||||
X(a, STATIC, ONEOF, INT32, (payload_variant,factory_reset_config,factory_reset_config), 99) \
|
X(a, STATIC, ONEOF, INT32, (payload_variant,factory_reset_config,factory_reset_config), 99) \
|
||||||
X(a, STATIC, ONEOF, BOOL, (payload_variant,nodedb_reset,nodedb_reset), 100) \
|
X(a, STATIC, ONEOF, BOOL, (payload_variant,nodedb_reset,nodedb_reset), 100) \
|
||||||
X(a, STATIC, SINGULAR, BYTES, session_passkey, 101) \
|
X(a, STATIC, SINGULAR, BYTES, session_passkey, 101) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (payload_variant,ota_request,ota_request), 102) \
|
X(a, STATIC, ONEOF, MESSAGE, (payload_variant,ota_request,ota_request), 102)
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (payload_variant,sensor_config,sensor_config), 103)
|
|
||||||
#define meshtastic_AdminMessage_CALLBACK NULL
|
#define meshtastic_AdminMessage_CALLBACK NULL
|
||||||
#define meshtastic_AdminMessage_DEFAULT NULL
|
#define meshtastic_AdminMessage_DEFAULT NULL
|
||||||
#define meshtastic_AdminMessage_payload_variant_get_channel_response_MSGTYPE meshtastic_Channel
|
#define meshtastic_AdminMessage_payload_variant_get_channel_response_MSGTYPE meshtastic_Channel
|
||||||
@@ -591,7 +523,6 @@ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,sensor_config,sensor_config)
|
|||||||
#define meshtastic_AdminMessage_payload_variant_add_contact_MSGTYPE meshtastic_SharedContact
|
#define meshtastic_AdminMessage_payload_variant_add_contact_MSGTYPE meshtastic_SharedContact
|
||||||
#define meshtastic_AdminMessage_payload_variant_key_verification_MSGTYPE meshtastic_KeyVerificationAdmin
|
#define meshtastic_AdminMessage_payload_variant_key_verification_MSGTYPE meshtastic_KeyVerificationAdmin
|
||||||
#define meshtastic_AdminMessage_payload_variant_ota_request_MSGTYPE meshtastic_AdminMessage_OTAEvent
|
#define meshtastic_AdminMessage_payload_variant_ota_request_MSGTYPE meshtastic_AdminMessage_OTAEvent
|
||||||
#define meshtastic_AdminMessage_payload_variant_sensor_config_MSGTYPE meshtastic_SensorConfig
|
|
||||||
|
|
||||||
#define meshtastic_AdminMessage_InputEvent_FIELDLIST(X, a) \
|
#define meshtastic_AdminMessage_InputEvent_FIELDLIST(X, a) \
|
||||||
X(a, STATIC, SINGULAR, UINT32, event_code, 1) \
|
X(a, STATIC, SINGULAR, UINT32, event_code, 1) \
|
||||||
@@ -638,31 +569,6 @@ X(a, STATIC, OPTIONAL, UINT32, security_number, 4)
|
|||||||
#define meshtastic_KeyVerificationAdmin_CALLBACK NULL
|
#define meshtastic_KeyVerificationAdmin_CALLBACK NULL
|
||||||
#define meshtastic_KeyVerificationAdmin_DEFAULT NULL
|
#define meshtastic_KeyVerificationAdmin_DEFAULT NULL
|
||||||
|
|
||||||
#define meshtastic_SensorConfig_FIELDLIST(X, a) \
|
|
||||||
X(a, STATIC, OPTIONAL, MESSAGE, scd4x_config, 1) \
|
|
||||||
X(a, STATIC, OPTIONAL, MESSAGE, sen5x_config, 2)
|
|
||||||
#define meshtastic_SensorConfig_CALLBACK NULL
|
|
||||||
#define meshtastic_SensorConfig_DEFAULT NULL
|
|
||||||
#define meshtastic_SensorConfig_scd4x_config_MSGTYPE meshtastic_SCD4X_config
|
|
||||||
#define meshtastic_SensorConfig_sen5x_config_MSGTYPE meshtastic_SEN5X_config
|
|
||||||
|
|
||||||
#define meshtastic_SCD4X_config_FIELDLIST(X, a) \
|
|
||||||
X(a, STATIC, OPTIONAL, BOOL, set_asc, 1) \
|
|
||||||
X(a, STATIC, OPTIONAL, UINT32, set_target_co2_conc, 2) \
|
|
||||||
X(a, STATIC, OPTIONAL, FLOAT, set_temperature, 3) \
|
|
||||||
X(a, STATIC, OPTIONAL, UINT32, set_altitude, 4) \
|
|
||||||
X(a, STATIC, OPTIONAL, UINT32, set_ambient_pressure, 5) \
|
|
||||||
X(a, STATIC, OPTIONAL, BOOL, factory_reset, 6) \
|
|
||||||
X(a, STATIC, OPTIONAL, BOOL, set_power_mode, 7)
|
|
||||||
#define meshtastic_SCD4X_config_CALLBACK NULL
|
|
||||||
#define meshtastic_SCD4X_config_DEFAULT NULL
|
|
||||||
|
|
||||||
#define meshtastic_SEN5X_config_FIELDLIST(X, a) \
|
|
||||||
X(a, STATIC, OPTIONAL, FLOAT, set_temperature, 1) \
|
|
||||||
X(a, STATIC, OPTIONAL, BOOL, set_one_shot_mode, 2)
|
|
||||||
#define meshtastic_SEN5X_config_CALLBACK NULL
|
|
||||||
#define meshtastic_SEN5X_config_DEFAULT NULL
|
|
||||||
|
|
||||||
extern const pb_msgdesc_t meshtastic_AdminMessage_msg;
|
extern const pb_msgdesc_t meshtastic_AdminMessage_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_AdminMessage_InputEvent_msg;
|
extern const pb_msgdesc_t meshtastic_AdminMessage_InputEvent_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_AdminMessage_OTAEvent_msg;
|
extern const pb_msgdesc_t meshtastic_AdminMessage_OTAEvent_msg;
|
||||||
@@ -670,9 +576,6 @@ extern const pb_msgdesc_t meshtastic_HamParameters_msg;
|
|||||||
extern const pb_msgdesc_t meshtastic_NodeRemoteHardwarePinsResponse_msg;
|
extern const pb_msgdesc_t meshtastic_NodeRemoteHardwarePinsResponse_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_SharedContact_msg;
|
extern const pb_msgdesc_t meshtastic_SharedContact_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_KeyVerificationAdmin_msg;
|
extern const pb_msgdesc_t meshtastic_KeyVerificationAdmin_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_SensorConfig_msg;
|
|
||||||
extern const pb_msgdesc_t meshtastic_SCD4X_config_msg;
|
|
||||||
extern const pb_msgdesc_t meshtastic_SEN5X_config_msg;
|
|
||||||
|
|
||||||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
|
||||||
#define meshtastic_AdminMessage_fields &meshtastic_AdminMessage_msg
|
#define meshtastic_AdminMessage_fields &meshtastic_AdminMessage_msg
|
||||||
@@ -682,9 +585,6 @@ extern const pb_msgdesc_t meshtastic_SEN5X_config_msg;
|
|||||||
#define meshtastic_NodeRemoteHardwarePinsResponse_fields &meshtastic_NodeRemoteHardwarePinsResponse_msg
|
#define meshtastic_NodeRemoteHardwarePinsResponse_fields &meshtastic_NodeRemoteHardwarePinsResponse_msg
|
||||||
#define meshtastic_SharedContact_fields &meshtastic_SharedContact_msg
|
#define meshtastic_SharedContact_fields &meshtastic_SharedContact_msg
|
||||||
#define meshtastic_KeyVerificationAdmin_fields &meshtastic_KeyVerificationAdmin_msg
|
#define meshtastic_KeyVerificationAdmin_fields &meshtastic_KeyVerificationAdmin_msg
|
||||||
#define meshtastic_SensorConfig_fields &meshtastic_SensorConfig_msg
|
|
||||||
#define meshtastic_SCD4X_config_fields &meshtastic_SCD4X_config_msg
|
|
||||||
#define meshtastic_SEN5X_config_fields &meshtastic_SEN5X_config_msg
|
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#define MESHTASTIC_MESHTASTIC_ADMIN_PB_H_MAX_SIZE meshtastic_AdminMessage_size
|
#define MESHTASTIC_MESHTASTIC_ADMIN_PB_H_MAX_SIZE meshtastic_AdminMessage_size
|
||||||
@@ -694,9 +594,6 @@ extern const pb_msgdesc_t meshtastic_SEN5X_config_msg;
|
|||||||
#define meshtastic_HamParameters_size 31
|
#define meshtastic_HamParameters_size 31
|
||||||
#define meshtastic_KeyVerificationAdmin_size 25
|
#define meshtastic_KeyVerificationAdmin_size 25
|
||||||
#define meshtastic_NodeRemoteHardwarePinsResponse_size 496
|
#define meshtastic_NodeRemoteHardwarePinsResponse_size 496
|
||||||
#define meshtastic_SCD4X_config_size 29
|
|
||||||
#define meshtastic_SEN5X_config_size 7
|
|
||||||
#define meshtastic_SensorConfig_size 40
|
|
||||||
#define meshtastic_SharedContact_size 127
|
#define meshtastic_SharedContact_size 127
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -361,7 +361,7 @@ extern const pb_msgdesc_t meshtastic_BackupPreferences_msg;
|
|||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
/* meshtastic_NodeDatabase_size depends on runtime parameters */
|
/* meshtastic_NodeDatabase_size depends on runtime parameters */
|
||||||
#define MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_MAX_SIZE meshtastic_BackupPreferences_size
|
#define MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_MAX_SIZE meshtastic_BackupPreferences_size
|
||||||
#define meshtastic_BackupPreferences_size 2362
|
#define meshtastic_BackupPreferences_size 2279
|
||||||
#define meshtastic_ChannelFile_size 718
|
#define meshtastic_ChannelFile_size 718
|
||||||
#define meshtastic_DeviceState_size 1737
|
#define meshtastic_DeviceState_size 1737
|
||||||
#define meshtastic_NodeInfoLite_size 196
|
#define meshtastic_NodeInfoLite_size 196
|
||||||
|
|||||||
@@ -87,9 +87,6 @@ typedef struct _meshtastic_LocalModuleConfig {
|
|||||||
/* Paxcounter Config */
|
/* Paxcounter Config */
|
||||||
bool has_paxcounter;
|
bool has_paxcounter;
|
||||||
meshtastic_ModuleConfig_PaxcounterConfig paxcounter;
|
meshtastic_ModuleConfig_PaxcounterConfig paxcounter;
|
||||||
/* StatusMessage Config */
|
|
||||||
bool has_statusmessage;
|
|
||||||
meshtastic_ModuleConfig_StatusMessageConfig statusmessage;
|
|
||||||
} meshtastic_LocalModuleConfig;
|
} meshtastic_LocalModuleConfig;
|
||||||
|
|
||||||
|
|
||||||
@@ -99,9 +96,9 @@ extern "C" {
|
|||||||
|
|
||||||
/* Initializer values for message structs */
|
/* Initializer values for message structs */
|
||||||
#define meshtastic_LocalConfig_init_default {false, meshtastic_Config_DeviceConfig_init_default, false, meshtastic_Config_PositionConfig_init_default, false, meshtastic_Config_PowerConfig_init_default, false, meshtastic_Config_NetworkConfig_init_default, false, meshtastic_Config_DisplayConfig_init_default, false, meshtastic_Config_LoRaConfig_init_default, false, meshtastic_Config_BluetoothConfig_init_default, 0, false, meshtastic_Config_SecurityConfig_init_default}
|
#define meshtastic_LocalConfig_init_default {false, meshtastic_Config_DeviceConfig_init_default, false, meshtastic_Config_PositionConfig_init_default, false, meshtastic_Config_PowerConfig_init_default, false, meshtastic_Config_NetworkConfig_init_default, false, meshtastic_Config_DisplayConfig_init_default, false, meshtastic_Config_LoRaConfig_init_default, false, meshtastic_Config_BluetoothConfig_init_default, 0, false, meshtastic_Config_SecurityConfig_init_default}
|
||||||
#define meshtastic_LocalModuleConfig_init_default {false, meshtastic_ModuleConfig_MQTTConfig_init_default, false, meshtastic_ModuleConfig_SerialConfig_init_default, false, meshtastic_ModuleConfig_ExternalNotificationConfig_init_default, false, meshtastic_ModuleConfig_StoreForwardConfig_init_default, false, meshtastic_ModuleConfig_RangeTestConfig_init_default, false, meshtastic_ModuleConfig_TelemetryConfig_init_default, false, meshtastic_ModuleConfig_CannedMessageConfig_init_default, 0, false, meshtastic_ModuleConfig_AudioConfig_init_default, false, meshtastic_ModuleConfig_RemoteHardwareConfig_init_default, false, meshtastic_ModuleConfig_NeighborInfoConfig_init_default, false, meshtastic_ModuleConfig_AmbientLightingConfig_init_default, false, meshtastic_ModuleConfig_DetectionSensorConfig_init_default, false, meshtastic_ModuleConfig_PaxcounterConfig_init_default, false, meshtastic_ModuleConfig_StatusMessageConfig_init_default}
|
#define meshtastic_LocalModuleConfig_init_default {false, meshtastic_ModuleConfig_MQTTConfig_init_default, false, meshtastic_ModuleConfig_SerialConfig_init_default, false, meshtastic_ModuleConfig_ExternalNotificationConfig_init_default, false, meshtastic_ModuleConfig_StoreForwardConfig_init_default, false, meshtastic_ModuleConfig_RangeTestConfig_init_default, false, meshtastic_ModuleConfig_TelemetryConfig_init_default, false, meshtastic_ModuleConfig_CannedMessageConfig_init_default, 0, false, meshtastic_ModuleConfig_AudioConfig_init_default, false, meshtastic_ModuleConfig_RemoteHardwareConfig_init_default, false, meshtastic_ModuleConfig_NeighborInfoConfig_init_default, false, meshtastic_ModuleConfig_AmbientLightingConfig_init_default, false, meshtastic_ModuleConfig_DetectionSensorConfig_init_default, false, meshtastic_ModuleConfig_PaxcounterConfig_init_default}
|
||||||
#define meshtastic_LocalConfig_init_zero {false, meshtastic_Config_DeviceConfig_init_zero, false, meshtastic_Config_PositionConfig_init_zero, false, meshtastic_Config_PowerConfig_init_zero, false, meshtastic_Config_NetworkConfig_init_zero, false, meshtastic_Config_DisplayConfig_init_zero, false, meshtastic_Config_LoRaConfig_init_zero, false, meshtastic_Config_BluetoothConfig_init_zero, 0, false, meshtastic_Config_SecurityConfig_init_zero}
|
#define meshtastic_LocalConfig_init_zero {false, meshtastic_Config_DeviceConfig_init_zero, false, meshtastic_Config_PositionConfig_init_zero, false, meshtastic_Config_PowerConfig_init_zero, false, meshtastic_Config_NetworkConfig_init_zero, false, meshtastic_Config_DisplayConfig_init_zero, false, meshtastic_Config_LoRaConfig_init_zero, false, meshtastic_Config_BluetoothConfig_init_zero, 0, false, meshtastic_Config_SecurityConfig_init_zero}
|
||||||
#define meshtastic_LocalModuleConfig_init_zero {false, meshtastic_ModuleConfig_MQTTConfig_init_zero, false, meshtastic_ModuleConfig_SerialConfig_init_zero, false, meshtastic_ModuleConfig_ExternalNotificationConfig_init_zero, false, meshtastic_ModuleConfig_StoreForwardConfig_init_zero, false, meshtastic_ModuleConfig_RangeTestConfig_init_zero, false, meshtastic_ModuleConfig_TelemetryConfig_init_zero, false, meshtastic_ModuleConfig_CannedMessageConfig_init_zero, 0, false, meshtastic_ModuleConfig_AudioConfig_init_zero, false, meshtastic_ModuleConfig_RemoteHardwareConfig_init_zero, false, meshtastic_ModuleConfig_NeighborInfoConfig_init_zero, false, meshtastic_ModuleConfig_AmbientLightingConfig_init_zero, false, meshtastic_ModuleConfig_DetectionSensorConfig_init_zero, false, meshtastic_ModuleConfig_PaxcounterConfig_init_zero, false, meshtastic_ModuleConfig_StatusMessageConfig_init_zero}
|
#define meshtastic_LocalModuleConfig_init_zero {false, meshtastic_ModuleConfig_MQTTConfig_init_zero, false, meshtastic_ModuleConfig_SerialConfig_init_zero, false, meshtastic_ModuleConfig_ExternalNotificationConfig_init_zero, false, meshtastic_ModuleConfig_StoreForwardConfig_init_zero, false, meshtastic_ModuleConfig_RangeTestConfig_init_zero, false, meshtastic_ModuleConfig_TelemetryConfig_init_zero, false, meshtastic_ModuleConfig_CannedMessageConfig_init_zero, 0, false, meshtastic_ModuleConfig_AudioConfig_init_zero, false, meshtastic_ModuleConfig_RemoteHardwareConfig_init_zero, false, meshtastic_ModuleConfig_NeighborInfoConfig_init_zero, false, meshtastic_ModuleConfig_AmbientLightingConfig_init_zero, false, meshtastic_ModuleConfig_DetectionSensorConfig_init_zero, false, meshtastic_ModuleConfig_PaxcounterConfig_init_zero}
|
||||||
|
|
||||||
/* Field tags (for use in manual encoding/decoding) */
|
/* Field tags (for use in manual encoding/decoding) */
|
||||||
#define meshtastic_LocalConfig_device_tag 1
|
#define meshtastic_LocalConfig_device_tag 1
|
||||||
@@ -127,7 +124,6 @@ extern "C" {
|
|||||||
#define meshtastic_LocalModuleConfig_ambient_lighting_tag 12
|
#define meshtastic_LocalModuleConfig_ambient_lighting_tag 12
|
||||||
#define meshtastic_LocalModuleConfig_detection_sensor_tag 13
|
#define meshtastic_LocalModuleConfig_detection_sensor_tag 13
|
||||||
#define meshtastic_LocalModuleConfig_paxcounter_tag 14
|
#define meshtastic_LocalModuleConfig_paxcounter_tag 14
|
||||||
#define meshtastic_LocalModuleConfig_statusmessage_tag 15
|
|
||||||
|
|
||||||
/* Struct field encoding specification for nanopb */
|
/* Struct field encoding specification for nanopb */
|
||||||
#define meshtastic_LocalConfig_FIELDLIST(X, a) \
|
#define meshtastic_LocalConfig_FIELDLIST(X, a) \
|
||||||
@@ -165,8 +161,7 @@ X(a, STATIC, OPTIONAL, MESSAGE, remote_hardware, 10) \
|
|||||||
X(a, STATIC, OPTIONAL, MESSAGE, neighbor_info, 11) \
|
X(a, STATIC, OPTIONAL, MESSAGE, neighbor_info, 11) \
|
||||||
X(a, STATIC, OPTIONAL, MESSAGE, ambient_lighting, 12) \
|
X(a, STATIC, OPTIONAL, MESSAGE, ambient_lighting, 12) \
|
||||||
X(a, STATIC, OPTIONAL, MESSAGE, detection_sensor, 13) \
|
X(a, STATIC, OPTIONAL, MESSAGE, detection_sensor, 13) \
|
||||||
X(a, STATIC, OPTIONAL, MESSAGE, paxcounter, 14) \
|
X(a, STATIC, OPTIONAL, MESSAGE, paxcounter, 14)
|
||||||
X(a, STATIC, OPTIONAL, MESSAGE, statusmessage, 15)
|
|
||||||
#define meshtastic_LocalModuleConfig_CALLBACK NULL
|
#define meshtastic_LocalModuleConfig_CALLBACK NULL
|
||||||
#define meshtastic_LocalModuleConfig_DEFAULT NULL
|
#define meshtastic_LocalModuleConfig_DEFAULT NULL
|
||||||
#define meshtastic_LocalModuleConfig_mqtt_MSGTYPE meshtastic_ModuleConfig_MQTTConfig
|
#define meshtastic_LocalModuleConfig_mqtt_MSGTYPE meshtastic_ModuleConfig_MQTTConfig
|
||||||
@@ -182,7 +177,6 @@ X(a, STATIC, OPTIONAL, MESSAGE, statusmessage, 15)
|
|||||||
#define meshtastic_LocalModuleConfig_ambient_lighting_MSGTYPE meshtastic_ModuleConfig_AmbientLightingConfig
|
#define meshtastic_LocalModuleConfig_ambient_lighting_MSGTYPE meshtastic_ModuleConfig_AmbientLightingConfig
|
||||||
#define meshtastic_LocalModuleConfig_detection_sensor_MSGTYPE meshtastic_ModuleConfig_DetectionSensorConfig
|
#define meshtastic_LocalModuleConfig_detection_sensor_MSGTYPE meshtastic_ModuleConfig_DetectionSensorConfig
|
||||||
#define meshtastic_LocalModuleConfig_paxcounter_MSGTYPE meshtastic_ModuleConfig_PaxcounterConfig
|
#define meshtastic_LocalModuleConfig_paxcounter_MSGTYPE meshtastic_ModuleConfig_PaxcounterConfig
|
||||||
#define meshtastic_LocalModuleConfig_statusmessage_MSGTYPE meshtastic_ModuleConfig_StatusMessageConfig
|
|
||||||
|
|
||||||
extern const pb_msgdesc_t meshtastic_LocalConfig_msg;
|
extern const pb_msgdesc_t meshtastic_LocalConfig_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_LocalModuleConfig_msg;
|
extern const pb_msgdesc_t meshtastic_LocalModuleConfig_msg;
|
||||||
@@ -192,9 +186,9 @@ extern const pb_msgdesc_t meshtastic_LocalModuleConfig_msg;
|
|||||||
#define meshtastic_LocalModuleConfig_fields &meshtastic_LocalModuleConfig_msg
|
#define meshtastic_LocalModuleConfig_fields &meshtastic_LocalModuleConfig_msg
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#define MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_MAX_SIZE meshtastic_LocalModuleConfig_size
|
#define MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_MAX_SIZE meshtastic_LocalConfig_size
|
||||||
#define meshtastic_LocalConfig_size 749
|
#define meshtastic_LocalConfig_size 749
|
||||||
#define meshtastic_LocalModuleConfig_size 758
|
#define meshtastic_LocalModuleConfig_size 675
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
|
|||||||
@@ -33,9 +33,6 @@ PB_BIND(meshtastic_Telemetry, meshtastic_Telemetry, 2)
|
|||||||
PB_BIND(meshtastic_Nau7802Config, meshtastic_Nau7802Config, AUTO)
|
PB_BIND(meshtastic_Nau7802Config, meshtastic_Nau7802Config, AUTO)
|
||||||
|
|
||||||
|
|
||||||
PB_BIND(meshtastic_SEN5XState, meshtastic_SEN5XState, AUTO)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -435,25 +435,6 @@ typedef struct _meshtastic_Nau7802Config {
|
|||||||
float calibrationFactor;
|
float calibrationFactor;
|
||||||
} meshtastic_Nau7802Config;
|
} meshtastic_Nau7802Config;
|
||||||
|
|
||||||
/* SEN5X State, for saving to flash */
|
|
||||||
typedef struct _meshtastic_SEN5XState {
|
|
||||||
/* Last cleaning time for SEN5X */
|
|
||||||
uint32_t last_cleaning_time;
|
|
||||||
/* Last cleaning time for SEN5X - valid flag */
|
|
||||||
bool last_cleaning_valid;
|
|
||||||
/* Config flag for one-shot mode (see admin.proto) */
|
|
||||||
bool one_shot_mode;
|
|
||||||
/* Last VOC state time for SEN55 */
|
|
||||||
bool has_voc_state_time;
|
|
||||||
uint32_t voc_state_time;
|
|
||||||
/* Last VOC state validity flag for SEN55 */
|
|
||||||
bool has_voc_state_valid;
|
|
||||||
bool voc_state_valid;
|
|
||||||
/* VOC state array (8x uint8t) for SEN55 */
|
|
||||||
bool has_voc_state_array;
|
|
||||||
uint64_t voc_state_array;
|
|
||||||
} meshtastic_SEN5XState;
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@@ -474,7 +455,6 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Initializer values for message structs */
|
/* Initializer values for message structs */
|
||||||
#define meshtastic_DeviceMetrics_init_default {false, 0, false, 0, false, 0, false, 0, false, 0}
|
#define meshtastic_DeviceMetrics_init_default {false, 0, false, 0, false, 0, false, 0, false, 0}
|
||||||
#define meshtastic_EnvironmentMetrics_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
|
#define meshtastic_EnvironmentMetrics_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
|
||||||
@@ -485,7 +465,6 @@ extern "C" {
|
|||||||
#define meshtastic_HostMetrics_init_default {0, 0, 0, false, 0, false, 0, 0, 0, 0, false, ""}
|
#define meshtastic_HostMetrics_init_default {0, 0, 0, false, 0, false, 0, 0, 0, 0, false, ""}
|
||||||
#define meshtastic_Telemetry_init_default {0, 0, {meshtastic_DeviceMetrics_init_default}}
|
#define meshtastic_Telemetry_init_default {0, 0, {meshtastic_DeviceMetrics_init_default}}
|
||||||
#define meshtastic_Nau7802Config_init_default {0, 0}
|
#define meshtastic_Nau7802Config_init_default {0, 0}
|
||||||
#define meshtastic_SEN5XState_init_default {0, 0, 0, false, 0, false, 0, false, 0}
|
|
||||||
#define meshtastic_DeviceMetrics_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0}
|
#define meshtastic_DeviceMetrics_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0}
|
||||||
#define meshtastic_EnvironmentMetrics_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
|
#define meshtastic_EnvironmentMetrics_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
|
||||||
#define meshtastic_PowerMetrics_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
|
#define meshtastic_PowerMetrics_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
|
||||||
@@ -495,7 +474,6 @@ extern "C" {
|
|||||||
#define meshtastic_HostMetrics_init_zero {0, 0, 0, false, 0, false, 0, 0, 0, 0, false, ""}
|
#define meshtastic_HostMetrics_init_zero {0, 0, 0, false, 0, false, 0, 0, 0, 0, false, ""}
|
||||||
#define meshtastic_Telemetry_init_zero {0, 0, {meshtastic_DeviceMetrics_init_zero}}
|
#define meshtastic_Telemetry_init_zero {0, 0, {meshtastic_DeviceMetrics_init_zero}}
|
||||||
#define meshtastic_Nau7802Config_init_zero {0, 0}
|
#define meshtastic_Nau7802Config_init_zero {0, 0}
|
||||||
#define meshtastic_SEN5XState_init_zero {0, 0, 0, false, 0, false, 0, false, 0}
|
|
||||||
|
|
||||||
/* Field tags (for use in manual encoding/decoding) */
|
/* Field tags (for use in manual encoding/decoding) */
|
||||||
#define meshtastic_DeviceMetrics_battery_level_tag 1
|
#define meshtastic_DeviceMetrics_battery_level_tag 1
|
||||||
@@ -603,12 +581,6 @@ extern "C" {
|
|||||||
#define meshtastic_Telemetry_host_metrics_tag 8
|
#define meshtastic_Telemetry_host_metrics_tag 8
|
||||||
#define meshtastic_Nau7802Config_zeroOffset_tag 1
|
#define meshtastic_Nau7802Config_zeroOffset_tag 1
|
||||||
#define meshtastic_Nau7802Config_calibrationFactor_tag 2
|
#define meshtastic_Nau7802Config_calibrationFactor_tag 2
|
||||||
#define meshtastic_SEN5XState_last_cleaning_time_tag 1
|
|
||||||
#define meshtastic_SEN5XState_last_cleaning_valid_tag 2
|
|
||||||
#define meshtastic_SEN5XState_one_shot_mode_tag 3
|
|
||||||
#define meshtastic_SEN5XState_voc_state_time_tag 4
|
|
||||||
#define meshtastic_SEN5XState_voc_state_valid_tag 5
|
|
||||||
#define meshtastic_SEN5XState_voc_state_array_tag 6
|
|
||||||
|
|
||||||
/* Struct field encoding specification for nanopb */
|
/* Struct field encoding specification for nanopb */
|
||||||
#define meshtastic_DeviceMetrics_FIELDLIST(X, a) \
|
#define meshtastic_DeviceMetrics_FIELDLIST(X, a) \
|
||||||
@@ -759,16 +731,6 @@ X(a, STATIC, SINGULAR, FLOAT, calibrationFactor, 2)
|
|||||||
#define meshtastic_Nau7802Config_CALLBACK NULL
|
#define meshtastic_Nau7802Config_CALLBACK NULL
|
||||||
#define meshtastic_Nau7802Config_DEFAULT NULL
|
#define meshtastic_Nau7802Config_DEFAULT NULL
|
||||||
|
|
||||||
#define meshtastic_SEN5XState_FIELDLIST(X, a) \
|
|
||||||
X(a, STATIC, SINGULAR, UINT32, last_cleaning_time, 1) \
|
|
||||||
X(a, STATIC, SINGULAR, BOOL, last_cleaning_valid, 2) \
|
|
||||||
X(a, STATIC, SINGULAR, BOOL, one_shot_mode, 3) \
|
|
||||||
X(a, STATIC, OPTIONAL, UINT32, voc_state_time, 4) \
|
|
||||||
X(a, STATIC, OPTIONAL, BOOL, voc_state_valid, 5) \
|
|
||||||
X(a, STATIC, OPTIONAL, FIXED64, voc_state_array, 6)
|
|
||||||
#define meshtastic_SEN5XState_CALLBACK NULL
|
|
||||||
#define meshtastic_SEN5XState_DEFAULT NULL
|
|
||||||
|
|
||||||
extern const pb_msgdesc_t meshtastic_DeviceMetrics_msg;
|
extern const pb_msgdesc_t meshtastic_DeviceMetrics_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_EnvironmentMetrics_msg;
|
extern const pb_msgdesc_t meshtastic_EnvironmentMetrics_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_PowerMetrics_msg;
|
extern const pb_msgdesc_t meshtastic_PowerMetrics_msg;
|
||||||
@@ -778,7 +740,6 @@ extern const pb_msgdesc_t meshtastic_HealthMetrics_msg;
|
|||||||
extern const pb_msgdesc_t meshtastic_HostMetrics_msg;
|
extern const pb_msgdesc_t meshtastic_HostMetrics_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_Telemetry_msg;
|
extern const pb_msgdesc_t meshtastic_Telemetry_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_Nau7802Config_msg;
|
extern const pb_msgdesc_t meshtastic_Nau7802Config_msg;
|
||||||
extern const pb_msgdesc_t meshtastic_SEN5XState_msg;
|
|
||||||
|
|
||||||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
|
||||||
#define meshtastic_DeviceMetrics_fields &meshtastic_DeviceMetrics_msg
|
#define meshtastic_DeviceMetrics_fields &meshtastic_DeviceMetrics_msg
|
||||||
@@ -790,7 +751,6 @@ extern const pb_msgdesc_t meshtastic_SEN5XState_msg;
|
|||||||
#define meshtastic_HostMetrics_fields &meshtastic_HostMetrics_msg
|
#define meshtastic_HostMetrics_fields &meshtastic_HostMetrics_msg
|
||||||
#define meshtastic_Telemetry_fields &meshtastic_Telemetry_msg
|
#define meshtastic_Telemetry_fields &meshtastic_Telemetry_msg
|
||||||
#define meshtastic_Nau7802Config_fields &meshtastic_Nau7802Config_msg
|
#define meshtastic_Nau7802Config_fields &meshtastic_Nau7802Config_msg
|
||||||
#define meshtastic_SEN5XState_fields &meshtastic_SEN5XState_msg
|
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#define MESHTASTIC_MESHTASTIC_TELEMETRY_PB_H_MAX_SIZE meshtastic_Telemetry_size
|
#define MESHTASTIC_MESHTASTIC_TELEMETRY_PB_H_MAX_SIZE meshtastic_Telemetry_size
|
||||||
@@ -802,7 +762,6 @@ extern const pb_msgdesc_t meshtastic_SEN5XState_msg;
|
|||||||
#define meshtastic_LocalStats_size 87
|
#define meshtastic_LocalStats_size 87
|
||||||
#define meshtastic_Nau7802Config_size 16
|
#define meshtastic_Nau7802Config_size 16
|
||||||
#define meshtastic_PowerMetrics_size 81
|
#define meshtastic_PowerMetrics_size 81
|
||||||
#define meshtastic_SEN5XState_size 27
|
|
||||||
#define meshtastic_Telemetry_size 272
|
#define meshtastic_Telemetry_size 272
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -12,4 +12,4 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|||||||
@@ -36,4 +36,4 @@ lib_ignore =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
# renovate: datasource=custom.pio depName=SX1509 IO Expander packageName=sparkfun/library/SX1509 IO Expander
|
# renovate: datasource=custom.pio depName=SX1509 IO Expander packageName=sparkfun/library/SX1509 IO Expander
|
||||||
sparkfun/SX1509 IO Expander@3.0.6
|
sparkfun/SX1509 IO Expander@3.0.6
|
||||||
# renovate: datasource=custom.pio depName=APA102 packageName=pololu/library/APA102
|
# renovate: datasource=custom.pio depName=APA102 packageName=pololu/library/APA102
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ build_flags =
|
|||||||
lib_deps = ${heltec_v4_base.lib_deps}
|
lib_deps = ${heltec_v4_base.lib_deps}
|
||||||
; ${device-ui_base.lib_deps}
|
; ${device-ui_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.0
|
||||||
# renovate: datasource=git-refs depName=Quency-D_chsc6x packageName=https://github.com/Quency-D/chsc6x gitBranch=master
|
# renovate: datasource=git-refs depName=Quency-D_chsc6x packageName=https://github.com/Quency-D/chsc6x gitBranch=master
|
||||||
https://github.com/Quency-D/chsc6x/archive/5cbead829d6b432a8d621ed1aafd4eb474fd4f27.zip
|
https://github.com/Quency-D/chsc6x/archive/5cbead829d6b432a8d621ed1aafd4eb474fd4f27.zip
|
||||||
; TODO revert to official device-ui (when merged)
|
; TODO revert to official device-ui (when merged)
|
||||||
|
|||||||
@@ -24,4 +24,4 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|||||||
@@ -22,4 +22,4 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|||||||
@@ -1,17 +1,8 @@
|
|||||||
[env:heltec-wireless-tracker-v2]
|
[env:heltec-wireless-tracker-v2]
|
||||||
custom_meshtastic_support_level = 1
|
|
||||||
custom_meshtastic_images = heltec_wireless_tracker_v2.svg
|
|
||||||
custom_meshtastic_tags = Heltec
|
|
||||||
|
|
||||||
extends = esp32s3_base
|
extends = esp32s3_base
|
||||||
board = heltec_wireless_tracker_v2
|
board = heltec_wireless_tracker_v2
|
||||||
board_build.partitions = default_8MB.csv
|
board_build.partitions = default_8MB.csv
|
||||||
upload_protocol = esptool
|
upload_protocol = esptool
|
||||||
custom_meshtastic_hw_model = 113
|
|
||||||
custom_meshtastic_hw_model_slug = HELTEC_WIRELESS_TRACKER_V2
|
|
||||||
custom_meshtastic_architecture = esp32s3
|
|
||||||
custom_meshtastic_display_name = Heltec Wireless Tracker V2
|
|
||||||
custom_meshtastic_actively_supported = true
|
|
||||||
|
|
||||||
build_flags =
|
build_flags =
|
||||||
${esp32s3_base.build_flags}
|
${esp32s3_base.build_flags}
|
||||||
@@ -20,4 +11,4 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ lib_deps =
|
|||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
${device-ui_base.lib_deps}
|
${device-ui_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|
||||||
[mesh_tab_xpt2046]
|
[mesh_tab_xpt2046]
|
||||||
extends = mesh_tab_base
|
extends = mesh_tab_base
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|
||||||
build_src_filter =
|
build_src_filter =
|
||||||
${esp32s3_base.build_src_filter}
|
${esp32s3_base.build_src_filter}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|
||||||
[ft5x06]
|
[ft5x06]
|
||||||
extends = mesh_tab_base
|
extends = mesh_tab_base
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ build_flags = ${esp32s3_base.build_flags}
|
|||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
# renovate: datasource=custom.pio depName=ESP8266Audio packageName=earlephilhower/library/ESP8266Audio
|
# renovate: datasource=custom.pio depName=ESP8266Audio packageName=earlephilhower/library/ESP8266Audio
|
||||||
earlephilhower/ESP8266Audio@1.9.9
|
earlephilhower/ESP8266Audio@1.9.9
|
||||||
# renovate: datasource=custom.pio depName=ESP8266SAM packageName=earlephilhower/library/ESP8266SAM
|
# renovate: datasource=custom.pio depName=ESP8266SAM packageName=earlephilhower/library/ESP8266SAM
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ build_flags = ${esp32s3_base.build_flags}
|
|||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
||||||
lewisxhe/SensorLib@0.3.4
|
lewisxhe/SensorLib@0.3.4
|
||||||
# renovate: datasource=custom.pio depName=Adafruit DRV2605 packageName=adafruit/library/Adafruit DRV2605 Library
|
# renovate: datasource=custom.pio depName=Adafruit DRV2605 packageName=adafruit/library/Adafruit DRV2605 Library
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ build_flags = ${esp32s3_base.build_flags}
|
|||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
# renovate: datasource=custom.pio depName=ESP8266Audio packageName=earlephilhower/library/ESP8266Audio
|
# renovate: datasource=custom.pio depName=ESP8266Audio packageName=earlephilhower/library/ESP8266Audio
|
||||||
earlephilhower/ESP8266Audio@1.9.9
|
earlephilhower/ESP8266Audio@1.9.9
|
||||||
# renovate: datasource=custom.pio depName=ESP8266SAM packageName=earlephilhower/library/ESP8266SAM
|
# renovate: datasource=custom.pio depName=ESP8266SAM packageName=earlephilhower/library/ESP8266SAM
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|
||||||
[env:tracksenger-lcd]
|
[env:tracksenger-lcd]
|
||||||
custom_meshtastic_hw_model = 48
|
custom_meshtastic_hw_model = 48
|
||||||
@@ -48,7 +48,7 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
|
|
||||||
[env:tracksenger-oled]
|
[env:tracksenger-oled]
|
||||||
custom_meshtastic_hw_model = 48
|
custom_meshtastic_hw_model = 48
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ build_src_filter =
|
|||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.0
|
||||||
# TODO renovate
|
# TODO renovate
|
||||||
https://gitlab.com/hamishcunningham/unphonelibrary#meshtastic@9.0.0
|
https://gitlab.com/hamishcunningham/unphonelibrary#meshtastic@9.0.0
|
||||||
# renovate: datasource=custom.pio depName=NeoPixel packageName=adafruit/library/Adafruit NeoPixel
|
# renovate: datasource=custom.pio depName=NeoPixel packageName=adafruit/library/Adafruit NeoPixel
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ lib_deps =
|
|||||||
# renovate: datasource=custom.pio depName=rweather/Crypto packageName=rweather/library/Crypto
|
# renovate: datasource=custom.pio depName=rweather/Crypto packageName=rweather/library/Crypto
|
||||||
rweather/Crypto@0.4.0
|
rweather/Crypto@0.4.0
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.7
|
||||||
# renovate: datasource=git-refs depName=libch341-spi-userspace packageName=https://github.com/pine64/libch341-spi-userspace gitBranch=main
|
# renovate: datasource=git-refs depName=libch341-spi-userspace packageName=https://github.com/pine64/libch341-spi-userspace gitBranch=main
|
||||||
https://github.com/pine64/libch341-spi-userspace/archive/af9bc27c9c30fa90772279925b7c5913dff789b4.zip
|
https://github.com/pine64/libch341-spi-userspace/archive/af9bc27c9c30fa90772279925b7c5913dff789b4.zip
|
||||||
# renovate: datasource=custom.pio depName=adafruit/Adafruit seesaw Library packageName=adafruit/library/Adafruit seesaw Library
|
# renovate: datasource=custom.pio depName=adafruit/Adafruit seesaw Library packageName=adafruit/library/Adafruit seesaw Library
|
||||||
|
|||||||
@@ -49,21 +49,3 @@ void initVariant()
|
|||||||
pinMode(Battery_LED_4, OUTPUT);
|
pinMode(Battery_LED_4, OUTPUT);
|
||||||
ledOff(Battery_LED_4);
|
ledOff(Battery_LED_4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// called from main-nrf52.cpp during the cpuDeepSleep() function
|
|
||||||
void variant_shutdown()
|
|
||||||
{
|
|
||||||
for (int pin = 0; pin < 48; pin++) {
|
|
||||||
if (pin == PIN_GPS_EN || pin == PIN_BUTTON1) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pinMode(pin, OUTPUT);
|
|
||||||
digitalWrite(pin, LOW);
|
|
||||||
if (pin >= 32) {
|
|
||||||
NRF_P1->DIRCLR = (1 << (pin - 32));
|
|
||||||
} else {
|
|
||||||
NRF_GPIO->DIRCLR = (1 << pin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
digitalWrite(PIN_GPS_EN, HIGH);
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user