Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using CoCoSdevices;
- using cocosgateway;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CoCoSStatus
- {
- public class Statusses
- {
- private Device _device;
- public Statusses(Device device = null)
- {
- if (device != null)
- {
- _device = device;
- }
- }
- public int _status;
- public int _previousStatus = 0;
- public const int STATUS_INITIALIZING = 0x1; //1
- public const int STATUS_RUNNING = 0x2; //2
- public const int STATUS_STOPPING = 0x4; //4
- public const int STATUS_RECONNECTING = 0x8; //8
- public const int STATUS_CONNECTING = 0x10; //16
- public const int STATUS_CONNECTED = 0x20; //32
- public const int STATUS_DISCONNECTING = 0x40; //64
- public const int STATUS_DISCONNECTED = 0x80; //128
- public const int STATUS_WARNING = 0x100; //256
- public const int STATUS_ERROR = 0x200; //512
- public const int STATUS_SIMULATE = 0x8000; //32768
- private bool _stopping = false;
- public void setStatus(int status)
- {
- int newStatus = _status | status;
- _status = newStatus;
- // _patchApiStatus();
- }
- public void resetStatus(int status)
- {
- int newStatus = _status & (0xFFFF ^ status);
- _status = newStatus;
- // _patchApiStatus();
- }
- public int getStatus()
- {
- return _status;
- }
- public void setInit()
- {
- resetStatus(STATUS_RUNNING);
- setStatus(STATUS_INITIALIZING);
- _patchApiStatus();
- }
- public void resetInit()
- {
- resetStatus(STATUS_INITIALIZING);
- _patchApiStatus();
- }
- public void setRunning()
- {
- resetStatus(STATUS_INITIALIZING);
- setStatus(STATUS_RUNNING);
- _patchApiStatus();
- }
- public void resetRunning()
- {
- resetStatus(STATUS_RUNNING);
- _patchApiStatus();
- }
- public void setStopping()
- {
- resetStatus(STATUS_STOPPING);
- setStatus(STATUS_STOPPING);
- _patchApiStatus();
- }
- public void resetStopping()
- {
- resetStatus(STATUS_STOPPING);
- _patchApiStatus();
- }
- public void setStopped()
- {
- _patchApiStatus(STATUS_STOPPING);
- }
- public void setConnecting()
- {
- setStatus(STATUS_RUNNING);
- resetStatus(STATUS_RECONNECTING);
- resetStatus(STATUS_DISCONNECTED);
- resetStatus(STATUS_CONNECTED);
- resetStatus(STATUS_DISCONNECTING);
- setStatus(STATUS_CONNECTING);
- _patchApiStatus();
- if (_device != null)
- {
- _device.logConnectingToApi();
- }
- }
- public void resetConnecting()
- {
- resetStatus(STATUS_CONNECTING);
- _patchApiStatus();
- }
- public void setConnected()
- {
- resetStatus(STATUS_SIMULATE);
- setStatus(STATUS_RUNNING);
- setStatus(STATUS_CONNECTED);
- resetStatus(STATUS_CONNECTING);
- resetStatus(STATUS_DISCONNECTED);
- resetStatus(STATUS_RECONNECTING);
- resetStatus(STATUS_DISCONNECTING);
- _patchApiStatus();
- if (_device != null)
- {
- _device.logConnectedToApi();
- }
- }
- public void resetConnected()
- {
- resetStatus(STATUS_CONNECTED);
- _patchApiStatus();
- }
- public void setReconnecting()
- {
- setStatus(STATUS_RECONNECTING);
- setStatus(STATUS_RUNNING);
- resetStatus(STATUS_CONNECTED);
- resetStatus(STATUS_CONNECTING);
- _patchApiStatus();
- if (_device != null)
- {
- _device.logReconnectingToApi();
- }
- }
- public void resetReconnecting()
- {
- resetStatus(STATUS_RECONNECTING);
- _patchApiStatus();
- }
- public void setDisconnecting()
- {
- resetStatus(STATUS_CONNECTED);
- setStatus(STATUS_DISCONNECTING);
- _patchApiStatus();
- }
- public void resetDisconnecting()
- {
- resetStatus(STATUS_DISCONNECTING);
- _patchApiStatus();
- }
- public void setDisconnected()
- {
- resetStatus(STATUS_CONNECTED);
- resetStatus(STATUS_DISCONNECTING);
- setStatus(STATUS_DISCONNECTED);
- _patchApiStatus();
- if (_device != null)
- {
- _device.logDisconnectedToApi();
- }
- }
- public void resetDisconnected()
- {
- resetStatus(STATUS_DISCONNECTING);
- _patchApiStatus();
- }
- public void setWarning()
- {
- setStatus(STATUS_WARNING);
- _patchApiStatus();
- }
- public void resetWwarning()
- {
- resetStatus(STATUS_WARNING);
- _patchApiStatus();
- }
- public void setError()
- {
- setStatus(STATUS_ERROR);
- _patchApiStatus();
- }
- public void resetError()
- {
- resetStatus(STATUS_ERROR);
- _patchApiStatus();
- }
- public void setSimulate()
- {
- resetStatus(STATUS_DISCONNECTED);
- resetStatus(STATUS_CONNECTED);
- setStatus(STATUS_SIMULATE);
- _patchApiStatus();
- }
- public void resetSimulate()
- {
- resetStatus(STATUS_SIMULATE);
- _patchApiStatus();
- }
- private void _patchApiStatus(int status = 0)
- {
- if(status == 0)
- {
- status = getStatus();
- }
- if (_device != null)
- {
- if (status != _device.deviceStatus)
- {
- _device.deviceStatus = status;
- if (_device.statusTag != null)
- {
- bool goStop = false;
- if (_stopping)
- {
- goStop = true;
- }
- var data = new Dictionary<string, string>();
- object request = new { value = 0 };
- if (status == 0)
- {
- _stopping = true;
- request = new { value = 0 };
- }
- else
- {
- request = new { value = Convert.ToString(status) };
- _device.statusTag.value = Convert.ToString(status);
- }
- if (!goStop)
- {
- if (_status != _previousStatus || status == 1000)
- {
- GateWay.cocosApi.patch("system", "taglist", _device.statusTag.id, "", null, request, _device.id);
- _previousStatus = _status;
- }
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement