Changes between Version 12 and Version 13 of Docs/Prog/Manual/ApplicationLibraries/lib825ev/Weight


Ignore:
Timestamp:
02/25/20 16:47:03 (5 years ago)
Author:
Don Wilson
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Docs/Prog/Manual/ApplicationLibraries/lib825ev/Weight

    v12 v13  
    88[[Image(simple_ind.png)]]
    99
    10 simple_ind.h
     10
     11simple_ind.h:
    1112{{{
    12 #pragma once
     13#ifndef SIMPLE_IND_H_
     14#define SIMPLE_IND_H_
    1315
    1416EVENT(MainScreenShow);
    15 EVENT(MainScreenProcess);
    1617EVENT(Zero);
    1718EVENT(Quit);
     19
     20BACKGROUND_EVENT(Comm);
     21
     22MNBD_EVENT(MultiRcv);
     23EVENT(Exit);
     24
     25
     26
     27#endif /* SIMPLE_IND_H_ */
     28
    1829}}}
    1930
    20 simple_ind.cpp
     31simple_ind.cpp:
     32
    2133{{{
    2234#include "cardinal825.h"
     
    2436#include "simple_ind.h"
    2537
    26 int main(int ac,char **av)
     38int main()
    2739{
    2840        InitLCD();
     41
     42        SetCurColor(COLOR_ATTENTION);
     43        DisplayText(0, 0, "Simple Indicator Example");
    2944
    3045        ReadTouchCal();
     
    3449        MnBdStartup();
    3550
    36         FORM_INIT(Main, EventMainScreenShow, EventMainScreenProcess, NULL, NULL, nFormFlgNone);
     51        MnBdSetEvent(MNBD_REQ_REP_MULTI, MnBdEventMultiRcv);
     52       
     53        SetBackgroundEvent(BackgroundEventComm);
     54
     55        if(StartRepeatMulti(100) != OK)
     56        {
     57                DisplayText(0, FONT_HEIGHT, "Error starting repeat multi");
     58                return 0;
     59        }
     60
     61        FORM_INIT(Main, EventMainScreenShow, NULL, NULL, NULL, nFormFlgNone);
     62
     63        FORM_ADD_BUTTON(Main, Exit, 0, FONT_HEIGHT * 12, " Exit ", 'X', EventExit, FORM_BUTTON_INVERT);
    3764        FORM_ADD_BUTTON(Main, Zero,    0,   120,  "Zero",  'Z', EventZero,  FORM_BUTTON_OUTLINE);
    3865        FORM_ADD_BUTTON(Main, Quit,    0,   200,  "Quit",  'Q', EventQuit,  FORM_BUTTON_OUTLINE);
     
    4168        FORM_RUN(Main);
    4269        FORM_HIDE(Main);
     70
     71        MnBdClearCommEvent();
     72
     73        StopRepeatMulti();
     74        SetBackgroundEvent(NULL);
    4375
    4476        MnBdShutdown();
     
    5082{
    5183        ClearLCD();
    52         DisplayText(0, 0, "Simple Weight Indicator");
     84        SetCurColor(COLOR_ATTENTION);
     85        DisplayText(0, 0, "Simple Indicator Example");
     86
     87        ResetPrevGrossWt();
    5388        return 0;
    5489}
    5590
    56 EVENT(MainScreenProcess)
     91EVENT(Exit)
    5792{
    58         int n = MnBdProcess();
    59         if(n == mnbdProcWtRcv)
     93        return 1; // return non-zero to exit form
     94}
     95
     96MNBD_EVENT(MultiRcv)
     97{
     98        int n;
     99        for(n = 1; n <= GetNumScales(); n++)
    60100        {
    61                 if(IsGrossWtChanged(1))
     101                if(IsGrossWtChanged(n))
    62102                {
    63                         DisplayText(0, 40, GetChangedGrossWt(1), 0, BIG_FONT);
     103                        DisplayText(0, (FONT_HEIGHT * n) + FONT_HEIGHT, GetChangedGrossWt(n));
    64104                }
     105        }
     106        return 0;
     107}
     108
     109BACKGROUND_EVENT(Comm)
     110{
     111        // Use MnBdRead directly to prevent overhead of MnBdProcess
     112        // MnBdRead will call event MultiRcv that we registered previously when scale and DIO status is received
     113
     114        int n;
     115        // in case we have more I/O cards than scales change this
     116        for(n = 0; n <= GetNumScales(); n++)
     117        {
     118                // 0 = MNBD_DEV, 1 .. Scales and I/O cards
     119                MnBdRead(n);
    65120        }
    66121
     
    79134        return 1;
    80135}
     136
    81137}}}
    82138
     139
     140
     141