SHARE
TWEET

Untitled

a guest Aug 19th, 2019 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using CoCoSdevices;
  2. using cocosgateway;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace CoCoSStatus
  10. {
  11.     public class Statusses
  12.     {
  13.         private Device _device;
  14.  
  15.         public Statusses(Device device = null)
  16.         {
  17.             if (device != null)
  18.             {
  19.                 _device = device;
  20.             }
  21.         }
  22.         public int _status;
  23.         public int _previousStatus = 0;
  24.  
  25.         public const int STATUS_INITIALIZING = 0x1;         //1
  26.         public const int STATUS_RUNNING = 0x2;              //2
  27.         public const int STATUS_STOPPING = 0x4;             //4
  28.         public const int STATUS_RECONNECTING = 0x8;         //8
  29.         public const int STATUS_CONNECTING = 0x10;          //16
  30.         public const int STATUS_CONNECTED = 0x20;           //32
  31.         public const int STATUS_DISCONNECTING = 0x40;       //64
  32.         public const int STATUS_DISCONNECTED = 0x80;        //128
  33.         public const int STATUS_WARNING = 0x100;            //256
  34.         public const int STATUS_ERROR = 0x200;              //512
  35.         public const int STATUS_SIMULATE = 0x8000;          //‭32768‬
  36.  
  37.         private bool _stopping = false;
  38.  
  39.         public void setStatus(int status)
  40.         {
  41.             int newStatus = _status | status;
  42.             _status = newStatus;
  43.             //   _patchApiStatus();
  44.         }
  45.         public void resetStatus(int status)
  46.         {
  47.             int newStatus = _status & (0xFFFF ^ status);
  48.             _status = newStatus;
  49.  
  50.             //  _patchApiStatus();
  51.         }
  52.         public int getStatus()
  53.         {
  54.             return _status;
  55.         }
  56.         public void setInit()
  57.         {
  58.             resetStatus(STATUS_RUNNING);
  59.             setStatus(STATUS_INITIALIZING);
  60.             _patchApiStatus();
  61.         }
  62.  
  63.         public void resetInit()
  64.         {
  65.             resetStatus(STATUS_INITIALIZING);
  66.             _patchApiStatus();
  67.         }
  68.         public void setRunning()
  69.         {
  70.  
  71.             resetStatus(STATUS_INITIALIZING);
  72.             setStatus(STATUS_RUNNING);
  73.             _patchApiStatus();
  74.         }
  75.         public void resetRunning()
  76.         {
  77.             resetStatus(STATUS_RUNNING);
  78.             _patchApiStatus();
  79.         }
  80.         public void setStopping()
  81.         {
  82.             resetStatus(STATUS_STOPPING);
  83.             setStatus(STATUS_STOPPING);
  84.             _patchApiStatus();
  85.         }
  86.         public void resetStopping()
  87.         {
  88.             resetStatus(STATUS_STOPPING);
  89.             _patchApiStatus();
  90.         }
  91.         public void setStopped()
  92.         {
  93.             _patchApiStatus(STATUS_STOPPING);
  94.         }
  95.         public void setConnecting()
  96.         {
  97.             setStatus(STATUS_RUNNING);
  98.             resetStatus(STATUS_RECONNECTING);
  99.             resetStatus(STATUS_DISCONNECTED);
  100.             resetStatus(STATUS_CONNECTED);
  101.             resetStatus(STATUS_DISCONNECTING);
  102.             setStatus(STATUS_CONNECTING);
  103.             _patchApiStatus();
  104.             if (_device != null)
  105.             {
  106.                 _device.logConnectingToApi();
  107.             }
  108.         }
  109.         public void resetConnecting()
  110.         {
  111.             resetStatus(STATUS_CONNECTING);
  112.             _patchApiStatus();
  113.         }
  114.         public void setConnected()
  115.         {
  116.             resetStatus(STATUS_SIMULATE);
  117.             setStatus(STATUS_RUNNING);
  118.             setStatus(STATUS_CONNECTED);
  119.             resetStatus(STATUS_CONNECTING);
  120.             resetStatus(STATUS_DISCONNECTED);
  121.             resetStatus(STATUS_RECONNECTING);
  122.             resetStatus(STATUS_DISCONNECTING);
  123.  
  124.             _patchApiStatus();
  125.             if (_device != null)
  126.             {
  127.                 _device.logConnectedToApi();
  128.             }
  129.         }
  130.         public void resetConnected()
  131.         {
  132.             resetStatus(STATUS_CONNECTED);
  133.             _patchApiStatus();
  134.         }
  135.         public void setReconnecting()
  136.         {
  137.             setStatus(STATUS_RECONNECTING);
  138.             setStatus(STATUS_RUNNING);
  139.             resetStatus(STATUS_CONNECTED);
  140.             resetStatus(STATUS_CONNECTING);
  141.             _patchApiStatus();
  142.             if (_device != null)
  143.             {
  144.                 _device.logReconnectingToApi();
  145.             }
  146.         }
  147.         public void resetReconnecting()
  148.         {
  149.             resetStatus(STATUS_RECONNECTING);
  150.             _patchApiStatus();
  151.         }
  152.         public void setDisconnecting()
  153.         {
  154.             resetStatus(STATUS_CONNECTED);
  155.             setStatus(STATUS_DISCONNECTING);
  156.             _patchApiStatus();
  157.         }
  158.         public void resetDisconnecting()
  159.         {
  160.             resetStatus(STATUS_DISCONNECTING);
  161.             _patchApiStatus();
  162.         }
  163.         public void setDisconnected()
  164.         {
  165.             resetStatus(STATUS_CONNECTED);
  166.             resetStatus(STATUS_DISCONNECTING);
  167.             setStatus(STATUS_DISCONNECTED);
  168.             _patchApiStatus();
  169.             if (_device != null)
  170.             {
  171.                 _device.logDisconnectedToApi();
  172.             }
  173.         }
  174.         public void resetDisconnected()
  175.         {
  176.             resetStatus(STATUS_DISCONNECTING);
  177.             _patchApiStatus();
  178.         }
  179.         public void setWarning()
  180.         {
  181.             setStatus(STATUS_WARNING);
  182.             _patchApiStatus();
  183.         }
  184.         public void resetWwarning()
  185.         {
  186.             resetStatus(STATUS_WARNING);
  187.             _patchApiStatus();
  188.         }
  189.         public void setError()
  190.         {
  191.             setStatus(STATUS_ERROR);
  192.             _patchApiStatus();
  193.         }
  194.         public void resetError()
  195.         {
  196.             resetStatus(STATUS_ERROR);
  197.             _patchApiStatus();
  198.         }
  199.         public void setSimulate()
  200.         {
  201.             resetStatus(STATUS_DISCONNECTED);
  202.             resetStatus(STATUS_CONNECTED);
  203.             setStatus(STATUS_SIMULATE);
  204.             _patchApiStatus();
  205.         }
  206.         public void resetSimulate()
  207.         {
  208.             resetStatus(STATUS_SIMULATE);
  209.             _patchApiStatus();
  210.         }
  211.         private void _patchApiStatus(int status = 0)
  212.         {
  213.             if(status == 0)
  214.             {
  215.                 status = getStatus();
  216.             }
  217.  
  218.             if (_device != null)
  219.             {
  220.                 if (status != _device.deviceStatus)
  221.                 {
  222.                     _device.deviceStatus = status;
  223.  
  224.                     if (_device.statusTag != null)
  225.                     {
  226.                         bool goStop = false;
  227.  
  228.                         if (_stopping)
  229.                         {
  230.                             goStop = true;
  231.                         }
  232.  
  233.                         var data = new Dictionary<string, string>();
  234.                         object request = new { value = 0 };
  235.  
  236.                         if (status == 0)
  237.                         {
  238.                             _stopping = true;
  239.                             request = new { value = 0 };
  240.                         }
  241.                         else
  242.                         {
  243.                             request = new { value = Convert.ToString(status) };
  244.                             _device.statusTag.value = Convert.ToString(status);
  245.                         }
  246.                         if (!goStop)
  247.                         {
  248.                             if (_status != _previousStatus || status == 1000)
  249.                             {
  250.                                 GateWay.cocosApi.patch("system", "taglist", _device.statusTag.id, "", null, request, _device.id);
  251.  
  252.                                 _previousStatus = _status;
  253.                             }
  254.                         }
  255.                     }
  256.                 }
  257.             }
  258.         }
  259.  
  260.     }
  261.  
  262.  
  263. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top