1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396 |
- /**
- * \file MS_model_states.h
- */
- /*
- * Copyright (C) 2017. Mindtree Ltd.
- * All rights reserved.
- */
- #ifndef _H_MS_MODEL_STATES_
- #define _H_MS_MODEL_STATES_
- /* --------------------------------------------- Global Definitions */
- /* --------------------------------------------- Data Types/ Structures */
- /** Model State Type Defines */
- #define MS_STATE_GENERIC_ONOFF_T 0
- #define MS_STATE_GENERIC_LEVEL_T 1
- #define MS_STATE_GENERIC_DEFAULT_TRANSITION_TIME_T 2
- #define MS_STATE_GENERIC_ONPOWERUP_T 3
- #define MS_STATE_GENERIC_POWER_ACTUAL_T 4
- #define MS_STATE_GENERIC_POWER_LAST_T 5
- #define MS_STATE_GENERIC_POWER_DEFAULT_T 6
- #define MS_STATE_GENERIC_POWER_RANGE_T 7
- #define MS_STATE_GENERIC_POWER_LEVEL_T 8
- #define MS_STATE_GENERIC_BATTERY_T 9
- #define MS_STATE_GENERIC_LOCATION_GLOBAL_T 10
- #define MS_STATE_GENERIC_LOCATION_LOCAL_T 11
- #define MS_STATE_GENERIC_LOCATION_T 12
- #define MS_STATE_GENERIC_USER_PROPERTY_T 13
- #define MS_STATE_GENERIC_ADMIN_PROPERTY_T 14
- #define MS_STATE_GENERIC_MANUFACTURER_PROPERTY_T 15
- #define MS_STATE_GENERIC_PROPERTY_ID_T 16
- #define MS_STATE_GENERIC_PROPERTY_IDS_T 17
- #define MS_STATE_SENSOR_PROPERTY_ID_T 18
- #define MS_STATE_SENSOR_DESCRIPTOR_T 19
- #define MS_STATE_SENSOR_SETTINGS_T 20
- #define MS_STATE_SENSOR_SETTING_T 21
- #define MS_STATE_SENSOR_CADENCE_T 22
- #define MS_STATE_SENSOR_DATA_PROPERTY_ID_T 23
- #define MS_STATE_SENSOR_DATA_T 24
- #define MS_STATE_SENSOR_COLUMN_STATUS_T 25
- #define MS_STATE_SENSOR_SERIES_COLUMN_T 26
- #define MS_STATE_TIME_T 27
- #define MS_STATE_TIME_ZONE_T 28
- #define MS_STATE_TIME_TAI_UTC_DELTA_T 29
- #define MS_STATE_TIME_ROLE_T 30
- #define MS_STATE_SCENE_NUMBER_T 31
- #define MS_STATE_SCENE_STATUS_T 32
- #define MS_STATE_SCENE_REGISTER_STATUS_T 33
- #define MS_STATE_SCHEDULER_SCHEDULES_T 34
- #define MS_STATE_SCHEDULER_ENTRY_INDEX_T 35
- #define MS_STATE_SCHEDULER_ENTRY_T 36
- #define MS_STATE_LIGHT_LIGHTNESS_LINEAR_T 37
- #define MS_STATE_LIGHT_LIGHTNESS_ACTUAL_T 38
- #define MS_STATE_LIGHT_LIGHTNESS_LAST_T 39
- #define MS_STATE_LIGHT_LIGHTNESS_DEFAULT_T 40
- #define MS_STATE_LIGHT_LIGHTNESS_RANGE_T 41
- #define MS_STATE_LIGHT_LIGHTNESS_T 42
- #define MS_STATE_LIGHT_CTL_T 43
- #define MS_STATE_LIGHT_CTL_DEFAULT_T 44
- #define MS_STATE_LIGHT_CTL_TEMPERATURE_T 45
- #define MS_STATE_LIGHT_CTL_TEMPERATURE_RANGE_T 46
- #define MS_STATE_LIGHT_HSL_T 47
- #define MS_STATE_LIGHT_HSL_TARGET_T 48
- #define MS_STATE_LIGHT_HSL_DEFAULT_T 49
- #define MS_STATE_LIGHT_HSL_HUE_T 50
- #define MS_STATE_LIGHT_HSL_SATURATION_T 51
- #define MS_STATE_LIGHT_HSL_RANGE_T 52
- #define MS_STATE_LIGHT_XYL_T 53
- #define MS_STATE_LIGHT_XYL_TARGET_T 54
- #define MS_STATE_LIGHT_XYL_DEFAULT_T 55
- #define MS_STATE_LIGHT_XYL_RANGE_T 56
- #define MS_STATE_LIGHT_LC_MODE_T 57
- #define MS_STATE_LIGHT_LC_OM_T 58
- #define MS_STATE_LIGHT_LC_LIGHT_ONOFF_T 59
- #define MS_STATE_LIGHT_LC_PROPERTY_ID_T 60
- #define MS_STATE_LIGHT_LC_PROPERTY_T 61
- #define MS_STATE_GENERIC_USER_PROPERTY_IDS_T 62
- #define MS_STATE_GENERIC_ADMIN_PROPERTY_IDS_T 63
- #define MS_STATE_GENERIC_MANUFACTURER_PROPERTY_IDS_T 64
- #define MS_STATE_GENERIC_CLIENT_PROPERTY_IDS_T 65
- #define MS_STATE_SCENE_STORE_T 66
- #define MS_STATE_SCENE_RECALL_T 67
- #define MS_STATE_SCENE_DELETE_T 68
- #define MS_STATE_DELTA_LEVEL_T 69
- #define MS_STATE_MOVE_LEVEL_T 70
- /* Additional supporting structure type defines */
- #define MS_EXT_TID_AND_TRANSITION_STRUCT_T 128
- #define MS_EXT_STATUS_STRUCT_T 129
- #define MS_STATE_SENSOR_SERIES_T 130
- /**
- * Generic OnOff state is a Boolean value that represents the state of an
- * element
- */
- typedef struct MS_state_generic_onoff_struct
- {
- /** Generic On/Off */
- UINT8 onoff;
- /** Target On/Off - Used in response path */
- UINT8 target_onoff;
- /** Last On/Off */
- UINT8 last_onoff;
- /** TID - Used in request path */
- UINT8 tid;
- /**
- * Transition Time - Used in request path.
- * Used as remaining time in response path.
- */
- UINT8 transition_time;
- /** Delay - Used in request path */
- UINT8 delay;
- /** Transition Timer Handle */
- UINT16 transition_time_handle;
- } MS_STATE_GENERIC_ONOFF_STRUCT;
- /**
- * Generic Level state is a 16-bit signed integer (2-s complement) representing
- * the state of an element
- */
- typedef struct MS_state_generic_level_struct
- {
- /** Generic Level */
- UINT16 level;
- /** Delta Level */
- UINT32 delta_level;
- /** Move Level */
- UINT16 move_level;
- /* TID - Used in received path */
- UINT8 tid;
- /* Optional */
- /* Transition Time */
- UINT8 transition_time;
- /* Delay */
- UINT8 delay;
- /** Target Level */
- UINT16 target_level;
- } MS_STATE_GENERIC_LEVEL_STRUCT;
- /**
- * Generic Default Transition Time state determines how long an element shall
- * take to transition from a present state to a new state
- */
- typedef struct MS_state_generic_default_transition_time_struct
- {
- /** The number of Steps */
- UCHAR default_transition_number_of_steps;
- /** The resolution of the Default Transition Number of Steps field */
- UCHAR default_transition_step_resolution;
- } MS_STATE_GENERIC_DEFAULT_TRANSITION_TIME_STRUCT;
- /**
- * Generic OnPowerUp state is an enumeration representing the behavior of an
- * element when powered up
- */
- typedef struct MS_state_generic_onpowerup_struct
- {
- /** Generic OnPowerUp */
- UCHAR onpowerup;
- } MS_STATE_GENERIC_ONPOWERUP_STRUCT;
- /**
- * Generic Power Actual state determines the linear percentage of the maximum
- * power level of an element, representing a range from 0 percent through 100
- * percent
- */
- typedef struct MS_state_generic_power_actual_struct
- {
- /** Generic Power Actual */
- UINT16 power_actual;
- /* TID - Used only in request path */
- UINT8 tid;
- /** Generic Power Target - Used only in response path */
- UINT16 power_target;
- /**
- * Transition Time - Used in request path
- * Used as Remaining Time in response path
- */
- UINT8 transition_time;
- /* Delay - Used only in request path */
- UINT8 delay;
- /** Transition Timer Handle */
- UINT16 transition_time_handle;
- } MS_STATE_GENERIC_POWER_ACTUAL_STRUCT;
- /**
- * Generic Power Last state is a 16-bit value representing a percentage ranging
- * from (1/65535) percent to 100 percent
- */
- typedef struct MS_state_generic_power_last_struct
- {
- /** Generic Power Last */
- UINT16 power_last;
- } MS_STATE_GENERIC_POWER_LAST_STRUCT;
- /** Generic Power Default state is a 16-bit value ranging from 0 through 65535 */
- typedef struct MS_state_generic_power_default_struct
- {
- /** Generic Power Default */
- UINT16 power_default;
- } MS_STATE_GENERIC_POWER_DEFAULT_STRUCT;
- /**
- * Generic Power Range state determines the minimum and maximum power levels of
- * an element relative to the maximum power level an element can output
- */
- typedef struct MS_state_generic_power_range_struct
- {
- /** Generic Power Range - Minimum */
- UINT16 power_range_min;
- /** Generic Power Range - Maximum */
- UINT16 power_range_max;
- /** Status - Used only in the response path */
- UINT8 status;
- } MS_STATE_GENERIC_POWER_RANGE_STRUCT;
- /**
- * Generic Power Level state is a composite state that includes a Generic Power
- * Actual state, a Generic Power Last state, a Generic Power Default state, and
- * a Generic Power Range state
- */
- typedef struct MS_state_generic_power_level_struct
- {
- /** Generic Power Actual */
- MS_STATE_GENERIC_POWER_ACTUAL_STRUCT generic_power_actual;
- /** Generic Power Last */
- MS_STATE_GENERIC_POWER_LAST_STRUCT generic_power_last;
- /** Generic Power Default */
- MS_STATE_GENERIC_POWER_DEFAULT_STRUCT generic_power_default;
- /** Generic Power Range */
- MS_STATE_GENERIC_POWER_RANGE_STRUCT generic_power_range;
- } MS_STATE_GENERIC_POWER_LEVEL_STRUCT;
- /**
- * Generic Battery state is a set of four values representing the state of a
- * battery
- */
- typedef struct MS_state_generic_battery_struct
- {
- /**
- * Generic Battery Level state is a value ranging from 0 percent through 100
- * percent
- */
- UCHAR generic_battery_level;
- /**
- * Generic Battery Time to Discharge state is a 24-bit unsigned value ranging
- * from 0 through 0xFFFFFF
- */
- UINT32 generic_battery_time_to_discharge;
- /**
- * Generic Battery Time to Charge state is a 24-bit unsigned value ranging from
- * 0 through 0xFFFFFF
- */
- UINT32 generic_battery_time_to_charge;
- /**
- * Generic Battery Flags state is a concatenation of four 2-bit bit fields:
- * Presence, Indicator, Charging, and Serviceability
- */
- UCHAR generic_battery_flags;
- } MS_STATE_GENERIC_BATTERY_STRUCT;
- /** Generic Global Location state defines location information of an element */
- typedef struct MS_state_generic_location_global_struct
- {
- /** Global Coordinates (Latitude) */
- UINT32 global_latitude;
- /** Global Coordinates (Longitude) */
- UINT32 global_longitude;
- /** Global Altitude */
- UINT16 global_altitude;
- } MS_STATE_GENERIC_LOCATION_GLOBAL_STRUCT;
- /** Generic Local Location state defines location information of an element */
- typedef struct MS_state_generic_location_local_struct
- {
- /** Local Coordinates (North) */
- UINT16 local_north;
- /** Local Coordinates (East) */
- UINT16 local_east;
- /** Local Altitude */
- UINT16 local_altitude;
- /** Floor Number */
- UCHAR floor_number;
- /** Uncertainty */
- UINT16 uncertainty;
- } MS_STATE_GENERIC_LOCATION_LOCAL_STRUCT;
- /**
- * Generic Location state is a composite state that includes a Generic Location
- * Global state and a Generic Location Local state
- */
- typedef struct MS_state_generic_location_struct
- {
- /** Global Location */
- MS_STATE_GENERIC_LOCATION_GLOBAL_STRUCT global_location;
- /** Local Location */
- MS_STATE_GENERIC_LOCATION_LOCAL_STRUCT local_location;
- } MS_STATE_GENERIC_LOCATION_STRUCT;
- /**
- * Generic Property is a state representing a device property of an element.
- * The properties can be one of the following
- * - Manufacturer Properties
- * - Admin Properties
- * - User Properties
- */
- typedef struct MS_state_generic_property_struct
- {
- /**
- * User Property ID field is a 2-octet Assigned Number value referencing a
- * property
- */
- UINT16 property_id;
- /** Property Type - Manufacturer/Admin/User */
- UINT8 property_type;
- /**
- * User Access field is an enumeration indicating whether the device property
- * can be read or written as a Generic Admin/User Property
- */
- UCHAR access;
- /** User Property Value field is a conditional field */
- UCHAR * property_value;
- UINT16 property_value_len;
- } MS_STATE_GENERIC_PROPERTY_STRUCT;
- /** Generic User Property is a state representing a device property of an element */
- typedef struct MS_state_generic_user_property_struct
- {
- /**
- * User Property ID field is a 2-octet Assigned Number value referencing a
- * device property
- */
- UINT16 property_id;
- /**
- * User Access field is an enumeration indicating whether the device property
- * can be read or written as a Generic User Property
- */
- UCHAR user_access;
- /** User Property Value field is a conditional field */
- UCHAR * property_value;
- UINT16 property_value_len;
- } MS_STATE_GENERIC_USER_PROPERTY_STRUCT;
- /**
- * Generic Admin Property is a state representing a device property of an
- * element that can be read or written
- */
- typedef struct MS_state_generic_admin_property_struct
- {
- /**
- * Admin Property ID field is a 2-octet Assigned Number value referencing a
- * device property
- */
- UINT16 property_id;
- /**
- * Admin User Access field is an enumeration indicating whether the device
- * property can be read or written as a Generic User Property
- */
- UCHAR user_access;
- /** Admin Property Value field is a conditional field */
- UCHAR * property_value;
- UINT16 property_value_len;
- } MS_STATE_GENERIC_ADMIN_PROPERTY_STRUCT;
- /**
- * Generic Manufacturer Property is a state representing a device property of an
- * element that is programmed by a manufacturer and can be read
- */
- typedef struct MS_state_generic_manufacturer_property_struct
- {
- /**
- * Manufacturer Property ID field is a 2-octet Assigned Number value that
- * references a device property
- */
- UINT16 property_id;
- /**
- * Manufacturer User Access field is an enumeration indicating whether or not
- * the device property can be read as a Generic User Property
- */
- UCHAR user_access;
- /** Manufacturer Property Value field is a conditional field */
- UCHAR * property_value;
- UINT16 property_value_len;
- } MS_STATE_GENERIC_MANUFACTURER_PROPERTY_STRUCT;
- /**
- * Generic Property ID a read-only state representing a device property that an
- * element supports
- */
- typedef struct MS_state_generic_property_id_struct
- {
- /**
- * Property ID field is a 2-octet Assigned Number value that references a device
- * property
- */
- UINT16 property_id;
- } MS_STATE_GENERIC_PROPERTY_ID_STRUCT;
- /**
- * Generic Property IDs a state representing a set of device properties that an
- * element supports
- */
- typedef struct MS_state_generic_property_ids_struct
- {
- /**
- * Property IDs field is a set of 2-octet Assigned Number value that references
- * a set of device properties
- */
- UINT16 *property_ids;
- UINT16 property_ids_count;
- } MS_STATE_GENERIC_PROPERTY_IDS_STRUCT;
- /**
- * Sensor Property ID field is a 2-octet value referencing a device property
- * that describes the meaning and the format of data reported by a sensor
- */
- typedef struct MS_state_sensor_property_id_struct
- {
- /**
- * Sensor Property ID field is a 2-octet value referencing a device property
- * that describes the meaning and the format of data reported by a sensor
- */
- UINT16 property_id;
- } MS_STATE_SENSOR_PROPERTY_ID_STRUCT;
- /** Sensor Descriptor state represents the attributes describing the sensor data */
- typedef struct MS_state_sensor_descriptor_struct
- {
- /**
- * Sensor Property ID field is a 2-octet value referencing a device property
- * that describes the meaning and the format of data reported by a sensor
- */
- UINT16 sensor_property_id;
- /**
- * Sensor Positive Tolerance field is a 12-bit value representing the magnitude
- * of a possible positive error associated with the measurements that the sensor
- * is reporting
- */
- UINT16 sensor_positive_tolerance;
- /**
- * Sensor Negative Tolerance field is a 12-bit value representing the magnitude
- * of a possible negative error associated with the measurements that the sensor
- * is reporting
- */
- UINT16 sensor_negative_tolerance;
- /**
- * Sensor Sampling Function field specifies the averaging operation or type of
- * sampling function applied to the measured value
- */
- UCHAR sensor_sampling_function;
- /**
- * Sensor Measurement Period field specifies a uint8 value n that represents the
- * averaging time span, accumulation time, or measurement period in seconds over
- * which the measurement is taken
- */
- UCHAR sensor_measurement_period;
- /**
- * measurement reported by a sensor is internally refreshed at the frequency
- * indicated in the Sensor Update Interval field
- */
- UCHAR sensor_update_interval;
- /** Status - used in response to indicate if other fields to be included */
- UINT8 status;
- } MS_STATE_SENSOR_DESCRIPTOR_STRUCT;
- /** Sensor Settings state controls parameters of a sensor */
- typedef struct MS_state_sensor_settings_struct
- {
- /** Property ID of a sensor */
- UINT16 sensor_property_id;
- /** Property ID of a setting within a sensor */
- UINT16 *setting_property_ids;
- UINT16 setting_property_ids_count;
- } MS_STATE_SENSOR_SETTINGS_STRUCT;
- /** Sensor Setting state controls parameters of a sensor */
- typedef struct MS_state_sensor_setting_struct
- {
- /** Property ID of a sensor */
- UINT16 sensor_property_id;
- /** Property ID of a setting within a sensor */
- UINT16 sensor_setting_property_id;
- /** Read/Write access rights for the setting */
- UCHAR sensor_setting_access;
- /** Raw value of a setting within a sensor */
- UCHAR *sensor_setting_raw;
- UINT16 sensor_setting_raw_len;
- /* Status - used in response path */
- UINT8 status;
- } MS_STATE_SENSOR_SETTING_STRUCT;
- /** Sensor Cadence state controls the cadence of sensor reports */
- typedef struct MS_state_sensor_cadence_struct
- {
- /** Property ID of a sensor */
- UINT16 sensor_property_id;
- /** Divisor for the Publish Period */
- UCHAR fast_cadence_period_divisor;
- /** Defines the unit and format of the Status Trigger Delta fields */
- UCHAR status_trigger_type;
- /** Delta down value that triggers a status message */
- UCHAR *status_trigger_delta_down;
- UINT16 status_trigger_delta_down_len;
- /** Delta up value that triggers a status message */
- UCHAR *status_trigger_delta_up;
- UINT16 status_trigger_delta_up_len;
- /** Minimum interval between two consecutive Status messages */
- UCHAR status_min_interval;
- /** Low value for the fast cadence range */
- UCHAR *fast_cadence_low;
- UINT16 fast_cadence_low_len;
- /** High value for the fast cadence range */
- UCHAR *fast_cadence_high;
- UINT16 fast_cadence_high_len;
- /** Status - used in response path */
- UINT8 status;
- } MS_STATE_SENSOR_CADENCE_STRUCT;
- /**
- * The Sensor Data state is a sequence of one or more pairs of Sensor Property
- * ID and Raw Value fields, with each Raw Value field size and representation
- * defined by the characteristics referenced by the Sensor Property ID
- */
- typedef struct MS_state_sensor_data_struct
- {
- /** ID of the 1st device property of the sensor */
- UINT16 property_id_1;
- /**
- * Raw Value field with a size and representation defined by the 1st device
- * property
- */
- UCHAR *raw_value_1;
- UINT16 raw_value_1_len;
- /** ID of the 2nd device property of the sensor */
- UINT16 property_id_2;
- /**
- * Raw Value field with a size and representation defined by the 2nd device
- * property
- */
- UCHAR *raw_value_2;
- UINT16 raw_value_2_len;
- /** ID of the nth device property of the sensor */
- UINT16 property_id_n;
- /**
- * Raw Value field with a size and representation defined by the nth device
- * property
- */
- UCHAR *raw_value_n;
- UINT16 raw_value_n_len;
- /** Status - used in response path */
- UINT8 status;
- } MS_STATE_SENSOR_DATA_STRUCT;
- /**
- * Values measured by sensors may be organized as arrays (and represented as
- * series of columns, such as histograms
- */
- typedef struct MS_state_sensor_series_column_struct
- {
- /** Property describing the data series of the sensor */
- UINT16 sensor_property_id;
- /** Raw value representing the left corner of a column on the X axis */
- UCHAR *sensor_raw_value_x;
- UINT16 sensor_raw_value_x_len;
- /** Raw value representing the width of the column */
- UCHAR *sensor_column_width;
- UINT16 sensor_column_width_len;
- /** Raw value representing the height of the column on the Y axis */
- UCHAR *sensor_raw_value_y;
- UINT16 sensor_raw_value_y_len;
- /** Status - used in response path */
- UINT8 status;
- } MS_STATE_SENSOR_SERIES_COLUMN_STRUCT;
- /**
- * Mesh defines times based on International Atomic Time (TAI). The base
- * representation of times is the number of seconds after 00:00:00 TAI on
- * 2000-01-01 (that is, 1999-12-31T23:59:28 UTC)
- */
- typedef struct MS_state_time_struct
- {
- /** Current TAI time in seconds since the epoch. */
- UCHAR tai_seconds[5];
- /** The sub-second time in units of 1/256s. */
- UCHAR subsecond;
- /** Estimated uncertainty in 10-millisecond steps. */
- UCHAR uncertainty;
- /**
- * 0 = No Time Authority. The element does not have a trusted OOB source of
- * time, such as GPS or NTP. 1 = Time Authority. The element has a trusted OOB
- * source of time, such as GPS or NTP or a battery-backed, properly initialized
- * RTC.
- */
- UCHAR time_authority;
- /** Current difference between TAI and UTC in seconds */
- UINT16 tai_utc_delta;
- /** The local time zone offset in 15-minute increments */
- UCHAR time_zone_offset;
- } MS_STATE_TIME_STRUCT;
- /** Time Zone */
- typedef struct MS_state_time_zone_struct
- {
- /**
- * Current local time zone offset.
- * Meaningful only in 'Time Zone Status' response.
- */
- UCHAR time_zone_offset_current;
- /** Upcoming local time zone offset. */
- UCHAR time_zone_offset_new;
- /** Absolute TAI time when the Time Zone Offset will change from Current to New. */
- UCHAR tai_of_zone_change[5];
- } MS_STATE_TIME_ZONE_STRUCT;
- /** TAI-UTC Delta */
- typedef struct MS_state_time_tai_utc_delta_struct
- {
- /**
- * Current difference between TAI and UTC in seconds.
- * Meaningful only in 'TAI-UTC Delta Status' response.
- */
- UINT16 tai_utc_delta_current;
- /** Upcoming difference between TAI and UTC in seconds. */
- UINT16 tai_utc_delta_new;
- /** Always 0b0. Other values are Prohibited. */
- UCHAR padding;
- /** TAI Seconds time of the upcoming TAI-UTC Delta change */
- UCHAR tai_of_delta_change[5];
- } MS_STATE_TIME_TAI_UTC_DELTA_STRUCT;
- /** The Time Role state of an element */
- typedef struct MS_state_time_role_struct
- {
- /** Time Role */
- UCHAR role;
- } MS_STATE_TIME_ROLE_STRUCT;
- /** The state to identify a scene */
- typedef struct MS_state_scene_number_struct
- {
- /** The number to identify a scene */
- UINT16 number;
- } MS_STATE_SCENE_NUMBER_STRUCT;
- /** The current status of a currently active scene */
- typedef struct MS_state_scene_status_struct
- {
- /** Status Code */
- UCHAR status_code;
- /** Scene Number of a current scene. */
- UINT16 current_scene;
- /** Scene Number of a target scene. */
- UINT16 target_scene;
- /* Remaining Time */
- UINT8 remaining_time;
- } MS_STATE_SCENE_STATUS_STRUCT;
- /** The current status of scene register */
- typedef struct MS_state_scene_register_status_struct
- {
- /** Status Code */
- UCHAR status_code;
- /** Scene Number of a current scene. */
- UINT16 current_scene;
- /** A list of scenes stored within an element */
- UINT16 *scenes;
- UINT16 scenes_count;
- } MS_STATE_SCENE_REGISTER_STATUS_STRUCT;
- /** The current Schedule Register state of an element. */
- typedef struct MS_state_scheduler_schedules_struct
- {
- /** Bit field indicating defined Actions in the Schedule Register */
- UINT16 schedules;
- } MS_STATE_SCHEDULER_SCHEDULES_STRUCT;
- /** The entry index of the Schedule Register state */
- typedef struct MS_state_scheduler_entry_index_struct
- {
- /** Index of the Schedule Register entry */
- UCHAR index;
- } MS_STATE_SCHEDULER_ENTRY_INDEX_STRUCT;
- /** The entry of the Schedule Register state */
- typedef struct MS_state_scheduler_entry_struct
- {
- /** Index of the Schedule Register entry */
- UCHAR index;
- /** Scheduled year for the action */
- UCHAR year;
- /** Scheduled month for the action */
- UINT16 month;
- /** Scheduled day of the month for the action */
- UCHAR day;
- /** Scheduled hour for the action */
- UCHAR hour;
- /** Scheduled minute for the action */
- UCHAR minute;
- /** Scheduled second for the action */
- UCHAR second;
- /** Schedule days of the week for the action */
- UCHAR dayofweek;
- /** Action to be performed at the scheduled time */
- UCHAR action;
- /** Transition time for this action */
- UCHAR transition_time;
- /** Scene number to be used for some actions */
- UINT16 scene_number;
- } MS_STATE_SCHEDULER_ENTRY_STRUCT;
- /**
- * Light Lightness Linear state represents the lightness of a light on a linear
- * scale
- */
- typedef struct MS_state_light_lightness_linear_struct
- {
- /** Light Lightness Linear */
- UINT16 lightness_linear;
- /** Light Lightness Target - Used in response path. */
- UINT16 lightness_target;
- /** TID - Used in request path */
- UINT8 tid;
- /**
- * Transition Time - Used in request path.
- * Used as remaining time in response path.
- */
- UINT8 transition_time;
- /** Delay - Used in request path */
- UINT8 delay;
- } MS_STATE_LIGHT_LIGHTNESS_LINEAR_STRUCT;
- /**
- * Light Lightness Actual state represents the lightness of a light on a
- * perceptually uniform lightness scale
- */
- typedef struct MS_state_light_lightness_actual_struct
- {
- /** Light Lightness Actual */
- UINT16 lightness_actual;
- /** Light Lightness Target - Used in response path. */
- UINT16 lightness_target;
- /** TID - Used in request path */
- UINT8 tid;
- /**
- * Transition Time - Used in request path.
- * Used as remaining time in response path.
- */
- UINT8 transition_time;
- /** Delay - Used in request path */
- UINT8 delay;
- /** Transition Timer Handle */
- UINT16 transition_time_handle;
- } MS_STATE_LIGHT_LIGHTNESS_ACTUAL_STRUCT;
- /**
- * Light Lightness Last state represents the lightness of a light on a
- * perceptually uniform lightness scale
- */
- typedef struct MS_state_light_lightness_last_struct
- {
- /** Light Lightness Last */
- UINT16 lightness_last;
- } MS_STATE_LIGHT_LIGHTNESS_LAST_STRUCT;
- /**
- * Light Lightness Default state is a value ranging from 0x0000 to 0xFFFF,
- * representing a default lightness level for the Light Lightness Actual state
- */
- typedef struct MS_state_light_lightness_default_struct
- {
- /** Light Lightness Default */
- UINT16 lightness_default;
- } MS_STATE_LIGHT_LIGHTNESS_DEFAULT_STRUCT;
- /**
- * Light Lightness Range state determines the minimum and maximum lightness of
- * an element
- */
- typedef struct MS_state_light_lightness_range_struct
- {
- /** Light Lightness Range Min */
- UINT16 lightness_range_min;
- /** Light Lightness Range Max */
- UINT16 lightness_range_max;
- } MS_STATE_LIGHT_LIGHTNESS_RANGE_STRUCT;
- /**
- * Light Lightness state is a composite state that includes the Light Lightness
- * Linear, the Light Lightness Actual, the Light Lightness Last, and the Light
- * Lightness Default states
- */
- typedef struct MS_state_light_lightness_struct
- {
- /**
- * Light Lightness Linear state represents the lightness of a light on a linear
- * scale
- */
- MS_STATE_LIGHT_LIGHTNESS_LINEAR_STRUCT light_lightness_linear;
- /**
- * Light Lightness Actual state represents the lightness of a light on a
- * perceptually uniform lightness scale
- */
- MS_STATE_LIGHT_LIGHTNESS_ACTUAL_STRUCT light_lightness_actual;
- /**
- * Light Lightness Last state represents the lightness of a light on a
- * perceptually uniform lightness scale
- */
- MS_STATE_LIGHT_LIGHTNESS_LAST_STRUCT light_lightness_last;
- /**
- * Light Lightness Default state is a value ranging from 0x0000 to 0xFFFF,
- * representing a default lightness level for the Light Lightness Actual state
- */
- MS_STATE_LIGHT_LIGHTNESS_DEFAULT_STRUCT light_lightness_default;
- /**
- * Light Lightness Range state.
- */
- MS_STATE_LIGHT_LIGHTNESS_RANGE_STRUCT light_lightness_range;
- /** Status field used only for the Range Status */
- UINT8 range_status;
- } MS_STATE_LIGHT_LIGHTNESS_STRUCT;
- /**
- * Light CTL state is a composite state that includes the Light CTL Lightness,
- * the Light CTL Temperature and the Light CTL Delta UV states
- */
- typedef struct MS_state_light_ctl_struct
- {
- /** Light CTL Lightness */
- UINT16 ctl_lightness;
- /** Target Light CTL Lightness - Used in response path */
- UINT16 target_ctl_lightness;
- /** Light CTL Temperature */
- UINT16 ctl_temperature;
- /** Terget Light CTL Temperature - Used in response path */
- UINT16 target_ctl_temperature;
- /** Light CTL Delta UV */
- UINT16 ctl_delta_uv;
- /** TID - Used in request path */
- UINT8 tid;
- /**
- * Transition Time - Used in request path.
- * Used as remaining time in response path.
- */
- UINT8 transition_time;
- /** Delay - Used in request path */
- UINT8 delay;
- } MS_STATE_LIGHT_CTL_STRUCT;
- /**
- * Light CTL Default state is a composite state that includes the Light CTL
- * Lightness, the Light CTL Temperature and the Light CTL Delta UV states
- */
- typedef struct MS_state_light_ctl_default_struct
- {
- /** Light CTL Lightness */
- UINT16 ctl_lightness;
- /** Light CTL Temperature */
- UINT16 ctl_temperature;
- /** Light CTL Delta UV */
- UINT16 ctl_delta_uv;
- } MS_STATE_LIGHT_CTL_DEFAULT_STRUCT;
- /**
- * Light CTL Temperature state is a composite state that includes the Light CTL
- * Temperature and the Light CTL Delta UV states
- */
- typedef struct MS_state_light_ctl_temperature_struct
- {
- /** Light CTL Temperature */
- UINT16 ctl_temperature;
- /** Target Light CTL Temperature - Used in response path */
- UINT16 target_ctl_temperature;
- /** Light CTL Delta UV */
- UINT16 ctl_delta_uv;
- /** Target Light CTL Delta UV - Used in response path */
- UINT16 target_ctl_delta_uv;
- /** TID - Used in request path */
- UINT8 tid;
- /**
- * Transition Time - Used in request path.
- * Used as remaining time in response path.
- */
- UINT8 transition_time;
- /** Delay - Used in request path */
- UINT8 delay;
- } MS_STATE_LIGHT_CTL_TEMPERATURE_STRUCT;
- /**
- * Light CTL Temperature Range state determines the minimum and maximum color
- * temperatures of tunable white light an element is capable of emitting
- */
- typedef struct MS_state_light_ctl_temperature_range_struct
- {
- /** CTL Temperature Range Min */
- UINT16 ctl_temperature_range_min;
- /** CTL Temperature Range Max */
- UINT16 ctl_temperature_range_max;
- /** Status - Used in response path */
- UINT8 status;
- } MS_STATE_LIGHT_CTL_TEMPERATURE_RANGE_STRUCT;
- /**
- * Light HSL state is a composite state that includes the Light HSL Lighness,
- * the Light HSL Hue and the Light HSL Saturation states
- */
- typedef struct MS_state_light_hsl_struct
- {
- /** The perceived lightness of a light emitted by the element */
- UINT16 hsl_lightness;
- /** Target Perceived lightness - used in the response path */
- UINT16 target_hsl_lightness;
- /** The 16-bit value representing the hue */
- UINT16 hsl_hue;
- /** Target hue - used in the response path */
- UINT16 target_hsl_hue;
- /** The saturation of a color light */
- UINT16 hsl_saturation;
- /** Target saturation - used in the response path */
- UINT16 target_hsl_saturation;
- /** TID - Used in request path */
- UINT8 tid;
- /**
- * Transition Time - Used in request path.
- * Used as remaining time in response path.
- */
- UINT8 transition_time;
- /** Delay - Used in request path */
- UINT8 delay;
- /** Transition Timer Handle */
- UINT16 transition_time_handle;
- } MS_STATE_LIGHT_HSL_STRUCT;
- /**
- * Light HSL Target state is a composite state that includes the Light HSL
- * Lighness, the Light HSL Hue and the Light HSL Saturation states
- */
- typedef struct MS_state_light_hsl_target_struct
- {
- /** The perceived lightness of a light emitted by the element */
- UINT16 hsl_lightness;
- /** The 16-bit value representing the hue */
- UINT16 hsl_hue;
- /** The saturation of a color light */
- UINT16 hsl_saturation;
- } MS_STATE_LIGHT_HSL_TARGET_STRUCT;
- /**
- * Light HSL Default state is a composite state that includes the Light HSL
- * Lighness, the Light HSL Hue and the Light HSL Saturation states
- */
- typedef struct MS_state_light_hsl_default_struct
- {
- /** The perceived lightness of a light emitted by the element */
- UINT16 hsl_lightness;
- /** The 16-bit value representing the hue */
- UINT16 hsl_hue;
- /** The saturation of a color light */
- UINT16 hsl_saturation;
- } MS_STATE_LIGHT_HSL_DEFAULT_STRUCT;
- /** Light HSL Hue */
- typedef struct MS_state_light_hsl_hue_struct
- {
- /** The 16-bit value representing the hue */
- UINT16 hsl_hue;
- } MS_STATE_LIGHT_HSL_HUE_STRUCT;
- /** Light HSL Saturation */
- typedef struct MS_state_light_hsl_saturation_struct
- {
- /** The saturation of a color light */
- UINT16 hsl_saturation;
- } MS_STATE_LIGHT_HSL_SATURATION_STRUCT;
- /**
- * Light HSL Range state is a composite state that includes Minimum and Maximum
- * of the Light HSL Hue and the Light HSL Saturation states
- */
- typedef struct MS_state_light_hsl_range_struct
- {
- /** The value of the Hue Range Min field of the Light HSL Hue Range state */
- UINT16 hue_range_min;
- /** The value of the Hue Range Max field of the Light HSL Hue Range state */
- UINT16 hue_range_max;
- /**
- * The value of the Saturation Range Min field of the Light HSL Saturation Range
- * state
- */
- UINT16 saturation_range_min;
- /**
- * The value of the Saturation Range Max field of the Light HSL Saturation Range
- * state
- */
- UINT16 saturation_range_max;
- /** Status - Used only in response path */
- UINT8 status;
- } MS_STATE_LIGHT_HSL_RANGE_STRUCT;
- /**
- * Light xyL state is a composite state that includes the xyL Lightness, the
- * Light xyL x and the Light xyL y states
- */
- typedef struct MS_state_light_xyl_struct
- {
- /** The perceived lightness of a light emitted by the element */
- UINT16 xyl_lightness;
- /** Target perceived lightness - used in response path */
- UINT16 target_xyl_lightness;
- /** The 16-bit value representing the x coordinate of a CIE1931 color light */
- UINT16 xyl_x;
- /** Target x coordinate - used in response path */
- UINT16 target_xyl_x;
- /** The 16-bit value representing the y coordinate of a CIE1931 color light */
- UINT16 xyl_y;
- /** Target y coordinate - used in response path */
- UINT16 target_xyl_y;
- /** TID - Used in request path */
- UINT8 tid;
- /**
- * Transition Time - Used in request path.
- * Used as remaining time in response path.
- */
- UINT8 transition_time;
- /** Delay - Used in request path */
- UINT8 delay;
- /** Transition Timer Handle */
- UINT16 transition_time_handle;
- } MS_STATE_LIGHT_XYL_STRUCT;
- /**
- * Light xyL target state is a composite state that includes the xyL Lightness,
- * the Light xyL x and the Light xyL y states
- */
- typedef struct MS_state_light_xyl_target_struct
- {
- /** The perceived lightness of a light emitted by the element */
- UINT16 xyl_lightness;
- /** The 16-bit value representing the x coordinate of a CIE1931 color light */
- UINT16 xyl_x;
- /** The 16-bit value representing the y coordinate of a CIE1931 color light */
- UINT16 xyl_y;
- } MS_STATE_LIGHT_XYL_TARGET_STRUCT;
- /**
- * Light xyL default state is a composite state that includes the xyL Lightness,
- * the Light xyL x and the Light xyL y states
- */
- typedef struct MS_state_light_xyl_default_struct
- {
- /** The perceived lightness of a light emitted by the element */
- UINT16 xyl_lightness;
- /** The 16-bit value representing the x coordinate of a CIE1931 color light */
- UINT16 xyl_x;
- /** The 16-bit value representing the y coordinate of a CIE1931 color light */
- UINT16 xyl_y;
- } MS_STATE_LIGHT_XYL_DEFAULT_STRUCT;
- /**
- * Light xyL Range state determines the minimum and maximum values of the Light
- * xyL x and syL y state of an element
- */
- typedef struct MS_state_light_xyl_range_struct
- {
- /** The minimum value of a Light xyL x state of an element */
- UINT16 xyl_x_range_min;
- /** The maximum value of a Light xyL x state of an element */
- UINT16 xyl_x_range_max;
- /** The minimum value of a Light xyL y state of an element */
- UINT16 xyl_y_range_min;
- /** The maximum value of a Light xyL y state of an element */
- UINT16 xyl_y_range_max;
- /** Status - Used in the response path */
- UINT8 status;
- } MS_STATE_LIGHT_XYL_RANGE_STRUCT;
- /** Light LC Mode state */
- typedef struct MS_state_light_lc_mode_struct
- {
- /** Light LC Mode state - present */
- UCHAR present_mode;
- /** Light LC Mode state - target */
- UCHAR target_mode;
- } MS_STATE_LIGHT_LC_MODE_STRUCT;
- /** Light LC Occupancy Mode state */
- typedef struct MS_state_light_lc_om_struct
- {
- /** Light LC Occupancy Mode state - present */
- UCHAR present_mode;
- /** Light LC Occupancy Mode state - target */
- UCHAR target_mode;
- } MS_STATE_LIGHT_LC_OM_STRUCT;
- /** Light LC Light OnOff State */
- typedef struct MS_state_light_lc_light_onoff_struct
- {
- /** Light LC Light OnOff State */
- UCHAR present_light_onoff;
- /** Light LC Light OnOff State */
- UCHAR target_light_onoff;
- /** TID - Used in request path */
- UINT8 tid;
- /**
- * Transition Time - Used in request path.
- * Used as remaining time in response path.
- */
- UINT8 transition_time;
- /** Delay - Used in request path */
- UINT8 delay;
- } MS_STATE_LIGHT_LC_LIGHT_ONOFF_STRUCT;
- /** Property ID identifying a Light LC Property */
- typedef struct MS_state_light_lc_property_id_struct
- {
- /** Property ID identifying a Light LC Property */
- UINT16 property_id;
- } MS_STATE_LIGHT_LC_PROPERTY_ID_STRUCT;
- /** Light LC Property state */
- typedef struct MS_state_light_lc_property_struct
- {
- /** Property ID identifying a Light LC Property */
- UINT16 property_id;
- /** Raw value for the Light LC Property */
- UCHAR *property_value;
- UINT16 property_value_len;
- } MS_STATE_LIGHT_LC_PROPERTY_STRUCT;
- /* Additional supporting structure defines */
- /**
- * TID and Transition is a structure which contains Transaction ID (TID) as mandatory field.
- * Other two fields, Transition Time and Delay are optional.
- *
- * TID field is a transaction identifier indicating whether the message is a new message or
- * a retransmission of a previously sent message.
- *
- * If present, the Transition Time field identifies the time that an element will take
- * to transition to the target state from the present state.
- *
- * The Delay field shall be present when the Transition Time field is present.
- * It identifies the message execution delay, representing a time interval between receiving
- * the message by a model and executing the associated model behaviors.
- */
- typedef struct MS_ext_tid_and_transition_struct
- {
- UCHAR tid;
- UCHAR transition_time;
- UCHAR delay;
- UCHAR optional_fields_present;
- } MS_EXT_TID_AND_TRANSITION_STRUCT;
- /**
- * The Status Code field identifies the Status Code for the last operation.
- */
- typedef struct MS_ext_status_struct
- {
- UCHAR status;
- } MS_EXT_STATUS_STRUCT;
- /* State Transition data structure */
- typedef struct _MS_ACCESS_STATE_TRANSITION_TYPE
- {
- /* Transition Timer */
- EM_timer_handle transition_timer_handle;
- /* Transition State. Initial/delay/transition */
- UINT8 transition_state;
- /* Delay */
- UINT8 delay;
- /* Transition Time */
- UINT8 transition_time;
- /* Transition Start Callback */
- void (* transition_start_cb)(void *);
- /* Transition Complete Callback */
- void (* transition_complete_cb)(void *);
- /* Blob/Context */
- void * blob;
- }MS_ACCESS_STATE_TRANSITION_TYPE;
- /* --------------------------------------------- Function */
- #endif /*_H_MS_MODEL_STATES_ */
|