Fix for hack that worked around iOS app
Actuator_Waveforms.cpp@5:c9d71618070d, 2016-05-11 (annotated)
- Committer:
- roysandberg
- Date:
- Wed May 11 02:28:16 2016 +0000
- Revision:
- 5:c9d71618070d
- Parent:
- 4:d3858592d3b5
Version with heart rate 30 second mode
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
roysandberg | 0:8c0ecbdd3449 | 1 | /****************************************************************************** |
roysandberg | 0:8c0ecbdd3449 | 2 | * Actuator_Waveforms.h |
roysandberg | 0:8c0ecbdd3449 | 3 | * |
roysandberg | 0:8c0ecbdd3449 | 4 | * Created on: Dec 16, 2011 |
roysandberg | 0:8c0ecbdd3449 | 5 | * Board: DRV2603EVM-CT RevD |
roysandberg | 0:8c0ecbdd3449 | 6 | * Author: a0866685 |
roysandberg | 0:8c0ecbdd3449 | 7 | * |
roysandberg | 0:8c0ecbdd3449 | 8 | * Desc: This file contains the waveform data arrays. See instructions below |
roysandberg | 0:8c0ecbdd3449 | 9 | * to create new waveforms. |
roysandberg | 0:8c0ecbdd3449 | 10 | * |
roysandberg | 0:8c0ecbdd3449 | 11 | * Modified: Feb 15, 2011 - Updated for DRV2603EVM-CT RevC |
roysandberg | 0:8c0ecbdd3449 | 12 | * |
roysandberg | 0:8c0ecbdd3449 | 13 | ****************************************************************************** |
roysandberg | 0:8c0ecbdd3449 | 14 | * INSTRUCTIONS FOR CREATING A HAPTIC WAVEFORM |
roysandberg | 0:8c0ecbdd3449 | 15 | * **************************************************************************** |
roysandberg | 0:8c0ecbdd3449 | 16 | * 1. Create an array of data point pairs and label it |
roysandberg | 0:8c0ecbdd3449 | 17 | * "effect_data". Where "effect" is the name of the |
roysandberg | 0:8c0ecbdd3449 | 18 | * waveform. The first value in the pair is the |
roysandberg | 0:8c0ecbdd3449 | 19 | * amplitude and the second value is the time. Each |
roysandberg | 0:8c0ecbdd3449 | 20 | * unit of time is ~5ms. |
roysandberg | 0:8c0ecbdd3449 | 21 | * waveform[] = { |
roysandberg | 0:8c0ecbdd3449 | 22 | * amplitude,time, |
roysandberg | 0:8c0ecbdd3449 | 23 | * amplitude,time, |
roysandberg | 0:8c0ecbdd3449 | 24 | * ... |
roysandberg | 0:8c0ecbdd3449 | 25 | * }; |
roysandberg | 0:8c0ecbdd3449 | 26 | * |
roysandberg | 0:8c0ecbdd3449 | 27 | * 2. Create a Waveform struct below and call it "effect". |
roysandberg | 0:8c0ecbdd3449 | 28 | * |
roysandberg | 0:8c0ecbdd3449 | 29 | * 3. The Waveform structure should be set to: |
roysandberg | 0:8c0ecbdd3449 | 30 | * Waveform effect = { |
roysandberg | 0:8c0ecbdd3449 | 31 | * mode, // LRA_AUTOON, LRA_AUTOOFF, or ERM |
roysandberg | 0:8c0ecbdd3449 | 32 | * length, // size in bytes of "effect_data" |
roysandberg | 0:8c0ecbdd3449 | 33 | * data // name of the data array "effect_data" |
roysandberg | 0:8c0ecbdd3449 | 34 | * }; |
roysandberg | 0:8c0ecbdd3449 | 35 | * |
roysandberg | 0:8c0ecbdd3449 | 36 | * LRA_AUTOON - LRA with auto-resonance ON |
roysandberg | 0:8c0ecbdd3449 | 37 | * LRA_AUTOFF - LRA waveform with auto-resonance OFF |
roysandberg | 0:8c0ecbdd3449 | 38 | * ERM - ERM waveform |
roysandberg | 0:8c0ecbdd3449 | 39 | ******************************************************************************/ |
roysandberg | 0:8c0ecbdd3449 | 40 | |
roysandberg | 0:8c0ecbdd3449 | 41 | #include "Actuator_Waveforms.h" |
roysandberg | 0:8c0ecbdd3449 | 42 | |
roysandberg | 0:8c0ecbdd3449 | 43 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 44 | //LRA Standard Effects |
roysandberg | 0:8c0ecbdd3449 | 45 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 46 | const unsigned char lra_click_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 47 | LRA_AUTOON_MAX, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 48 | 0x00, 0x07}; |
roysandberg | 0:8c0ecbdd3449 | 49 | const Waveform lra_click = {LRA_AUTOON,4,lra_click_data}; |
roysandberg | 0:8c0ecbdd3449 | 50 | |
roysandberg | 0:8c0ecbdd3449 | 51 | const unsigned char lra_click_nobrake_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 52 | LRA_AUTOON_MAX, 0x0A, |
roysandberg | 0:8c0ecbdd3449 | 53 | 0x80, 0x02}; |
roysandberg | 0:8c0ecbdd3449 | 54 | const Waveform lra_click_nobrake = {LRA_AUTOON,4,lra_click_nobrake_data}; |
roysandberg | 0:8c0ecbdd3449 | 55 | |
roysandberg | 0:8c0ecbdd3449 | 56 | const unsigned char lra_doubleclick_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 57 | LRA_AUTOON_MAX, 0x08, |
roysandberg | 0:8c0ecbdd3449 | 58 | 0x00, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 59 | LRA_AUTOON_MAX, 0x08, |
roysandberg | 0:8c0ecbdd3449 | 60 | 0x00, 0x09}; |
roysandberg | 0:8c0ecbdd3449 | 61 | const Waveform lra_doubleclick = {LRA_AUTOON,8,lra_doubleclick_data}; |
roysandberg | 0:8c0ecbdd3449 | 62 | |
roysandberg | 0:8c0ecbdd3449 | 63 | const unsigned char lra_doubleclick_nobrake_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 64 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 0:8c0ecbdd3449 | 65 | 0x80, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 66 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 0:8c0ecbdd3449 | 67 | 0x80, 0x09}; |
roysandberg | 0:8c0ecbdd3449 | 68 | const Waveform lra_doubleclick_nobrake = {LRA_AUTOON,8,lra_doubleclick_nobrake_data}; |
roysandberg | 0:8c0ecbdd3449 | 69 | |
roysandberg | 0:8c0ecbdd3449 | 70 | const unsigned char lra_tripleclick_nobrake_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 71 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 0:8c0ecbdd3449 | 72 | 0x80, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 73 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 0:8c0ecbdd3449 | 74 | 0x80, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 75 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 0:8c0ecbdd3449 | 76 | 0x80, 0x09}; |
roysandberg | 0:8c0ecbdd3449 | 77 | const Waveform lra_tripleclick_nobrake = {LRA_AUTOON,12,lra_tripleclick_nobrake_data}; |
roysandberg | 0:8c0ecbdd3449 | 78 | |
roysandberg | 4:d3858592d3b5 | 79 | const unsigned char lra_quarupleclick_nobrake_data[] = { |
roysandberg | 4:d3858592d3b5 | 80 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 4:d3858592d3b5 | 81 | 0x80, 0x09, |
roysandberg | 4:d3858592d3b5 | 82 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 4:d3858592d3b5 | 83 | 0x80, 0x09, |
roysandberg | 4:d3858592d3b5 | 84 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 4:d3858592d3b5 | 85 | 0x80, 0x09, |
roysandberg | 4:d3858592d3b5 | 86 | LRA_AUTOON_MAX, 0x0D, |
roysandberg | 4:d3858592d3b5 | 87 | 0x80, 0x09}; |
roysandberg | 4:d3858592d3b5 | 88 | const Waveform lra_quarupleclick_nobrake = {LRA_AUTOON,16,lra_quarupleclick_nobrake_data}; |
roysandberg | 4:d3858592d3b5 | 89 | |
roysandberg | 4:d3858592d3b5 | 90 | |
roysandberg | 0:8c0ecbdd3449 | 91 | const unsigned char lra_alert_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 92 | LRA_AUTOON_MAX, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 93 | LRA_AUTOON_MAX, 0x80}; |
roysandberg | 0:8c0ecbdd3449 | 94 | const Waveform lra_alert = {LRA_AUTOON,4,lra_alert_data}; |
roysandberg | 0:8c0ecbdd3449 | 95 | |
roysandberg | 0:8c0ecbdd3449 | 96 | const unsigned char lra_rampup_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 97 | 0xFF, 0x02, |
roysandberg | 0:8c0ecbdd3449 | 98 | 0x90, 0x15, |
roysandberg | 0:8c0ecbdd3449 | 99 | 0xA0, 0x15, |
roysandberg | 0:8c0ecbdd3449 | 100 | 0xB0, 0x10, |
roysandberg | 0:8c0ecbdd3449 | 101 | 0xD0, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 102 | LRA_AUTOON_MAX, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 103 | 0x00, 0x03 |
roysandberg | 0:8c0ecbdd3449 | 104 | }; |
roysandberg | 0:8c0ecbdd3449 | 105 | const Waveform lra_rampup = {LRA_AUTOON,14,lra_rampup_data}; |
roysandberg | 0:8c0ecbdd3449 | 106 | |
roysandberg | 0:8c0ecbdd3449 | 107 | const unsigned char lra_rampdown_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 108 | LRA_AUTOON_MAX, 0x06, |
roysandberg | 0:8c0ecbdd3449 | 109 | 0xD0, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 110 | 0xB0, 0x10, |
roysandberg | 0:8c0ecbdd3449 | 111 | 0xA0, 0x15, |
roysandberg | 0:8c0ecbdd3449 | 112 | 0x90, 0x15, |
roysandberg | 0:8c0ecbdd3449 | 113 | 0x00, 0x08 |
roysandberg | 0:8c0ecbdd3449 | 114 | }; |
roysandberg | 0:8c0ecbdd3449 | 115 | const Waveform lra_rampdown = {LRA_AUTOON,12,lra_rampdown_data}; |
roysandberg | 0:8c0ecbdd3449 | 116 | |
roysandberg | 5:c9d71618070d | 117 | // reward pattern is ramp up plus 2 staccato buzzes |
roysandberg | 5:c9d71618070d | 118 | const unsigned char lra_reward_pattern_data[] = { |
roysandberg | 5:c9d71618070d | 119 | 0xFF, 0x02, // ramp up |
roysandberg | 5:c9d71618070d | 120 | 0x90, 0x15, |
roysandberg | 5:c9d71618070d | 121 | 0xA0, 0x15, |
roysandberg | 5:c9d71618070d | 122 | 0xB0, 0x10, |
roysandberg | 5:c9d71618070d | 123 | 0xD0, 0x09, |
roysandberg | 5:c9d71618070d | 124 | LRA_AUTOON_MAX, 0x05, |
roysandberg | 5:c9d71618070d | 125 | 0x00, 0x03, |
roysandberg | 5:c9d71618070d | 126 | LRA_AUTOON_MAX, 0x0D, // click |
roysandberg | 5:c9d71618070d | 127 | 0x80, 0x09, |
roysandberg | 5:c9d71618070d | 128 | LRA_AUTOON_MAX, 0x0D, // click |
roysandberg | 5:c9d71618070d | 129 | 0x80, 0x09 |
roysandberg | 5:c9d71618070d | 130 | }; |
roysandberg | 5:c9d71618070d | 131 | const Waveform lra_reward_pattern = {LRA_AUTOON,22,lra_reward_pattern_data}; |
roysandberg | 5:c9d71618070d | 132 | |
roysandberg | 5:c9d71618070d | 133 | |
roysandberg | 5:c9d71618070d | 134 | |
roysandberg | 0:8c0ecbdd3449 | 135 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 136 | //LRA Standard Effects in Dumb Mode |
roysandberg | 0:8c0ecbdd3449 | 137 | //Note: Using ERM mode to emulate dumb drive, so it must be scaled for 2Vrms |
roysandberg | 0:8c0ecbdd3449 | 138 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 139 | const unsigned char lra_click_dumb_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 140 | LRA_AUTOOFF_MAX, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 141 | 0x1A, 0x09}; |
roysandberg | 0:8c0ecbdd3449 | 142 | const Waveform lra_click_dumb = {LRA_AUTOOFF, 4,lra_click_dumb_data}; |
roysandberg | 0:8c0ecbdd3449 | 143 | |
roysandberg | 0:8c0ecbdd3449 | 144 | const unsigned char lra_click_nobrake_dumb_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 145 | LRA_AUTOOFF_MAX, 0x0D, |
roysandberg | 0:8c0ecbdd3449 | 146 | 0x80, 0x09}; |
roysandberg | 0:8c0ecbdd3449 | 147 | const Waveform lra_click_nobrake_dumb = {LRA_AUTOOFF,4,lra_click_nobrake_dumb_data}; |
roysandberg | 0:8c0ecbdd3449 | 148 | |
roysandberg | 0:8c0ecbdd3449 | 149 | const unsigned char lra_doubleclick_dumb_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 150 | LRA_AUTOOFF_MAX, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 151 | 0x1A, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 152 | LRA_AUTOOFF_MAX, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 153 | 0x1A, 0x09}; |
roysandberg | 0:8c0ecbdd3449 | 154 | const Waveform lra_doubleclick_dumb = {LRA_AUTOOFF,8,lra_doubleclick_dumb_data}; |
roysandberg | 0:8c0ecbdd3449 | 155 | |
roysandberg | 0:8c0ecbdd3449 | 156 | const unsigned char lra_doubleclick_nobrake_dumb_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 157 | LRA_AUTOOFF_MAX, 0x0D, |
roysandberg | 0:8c0ecbdd3449 | 158 | 0x80, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 159 | LRA_AUTOOFF_MAX, 0x0D, |
roysandberg | 0:8c0ecbdd3449 | 160 | 0x80, 0x09}; |
roysandberg | 0:8c0ecbdd3449 | 161 | const Waveform lra_doubleclick_nobrake_dumb = {LRA_AUTOOFF,8,lra_doubleclick_nobrake_dumb_data}; |
roysandberg | 0:8c0ecbdd3449 | 162 | |
roysandberg | 0:8c0ecbdd3449 | 163 | const unsigned char lra_alert_dumb_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 164 | LRA_AUTOOFF_MAX, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 165 | LRA_AUTOOFF_MAX, 0x80}; |
roysandberg | 0:8c0ecbdd3449 | 166 | const Waveform lra_alert_dumb = {LRA_AUTOOFF,4,lra_alert_dumb_data}; |
roysandberg | 0:8c0ecbdd3449 | 167 | |
roysandberg | 0:8c0ecbdd3449 | 168 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 169 | //ERM Standard Effects |
roysandberg | 0:8c0ecbdd3449 | 170 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 171 | const unsigned char erm_click_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 172 | 0xFF, 0x07, |
roysandberg | 0:8c0ecbdd3449 | 173 | 0x00, 0x04}; |
roysandberg | 0:8c0ecbdd3449 | 174 | const Waveform erm_click = {ERM,4,erm_click_data}; |
roysandberg | 0:8c0ecbdd3449 | 175 | |
roysandberg | 0:8c0ecbdd3449 | 176 | const unsigned char erm_bump_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 177 | 0xFF, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 178 | 0xB4, 0x07}; |
roysandberg | 0:8c0ecbdd3449 | 179 | const Waveform erm_bump = {ERM,4,erm_bump_data}; |
roysandberg | 0:8c0ecbdd3449 | 180 | |
roysandberg | 0:8c0ecbdd3449 | 181 | const unsigned char erm_doubleclick_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 182 | 0xFF, 0x06, |
roysandberg | 0:8c0ecbdd3449 | 183 | 0xB4, 0x03, |
roysandberg | 0:8c0ecbdd3449 | 184 | 0x00, 0x04, |
roysandberg | 0:8c0ecbdd3449 | 185 | 0x80, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 186 | 0xFF, 0x07, |
roysandberg | 0:8c0ecbdd3449 | 187 | 0xB4, 0x03, |
roysandberg | 0:8c0ecbdd3449 | 188 | 0x00, 0x05}; |
roysandberg | 0:8c0ecbdd3449 | 189 | const Waveform erm_doubleclick = {ERM,14,erm_doubleclick_data}; |
roysandberg | 0:8c0ecbdd3449 | 190 | |
roysandberg | 0:8c0ecbdd3449 | 191 | const unsigned char erm_doublebump_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 192 | 0xFF, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 193 | 0xB4, 0x08, |
roysandberg | 0:8c0ecbdd3449 | 194 | 0x80, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 195 | 0xFF, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 196 | 0xB4, 0x08}; |
roysandberg | 0:8c0ecbdd3449 | 197 | const Waveform erm_doublebump = {ERM,10,erm_doublebump_data}; |
roysandberg | 0:8c0ecbdd3449 | 198 | |
roysandberg | 0:8c0ecbdd3449 | 199 | const unsigned char erm_alert_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 200 | 0xFF, 0x03, |
roysandberg | 0:8c0ecbdd3449 | 201 | 0xB4, 0x60}; |
roysandberg | 0:8c0ecbdd3449 | 202 | const Waveform erm_alert = {ERM,4,erm_alert_data}; |
roysandberg | 0:8c0ecbdd3449 | 203 | |
roysandberg | 0:8c0ecbdd3449 | 204 | const unsigned char erm_rampup_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 205 | 0x90, 0x15, |
roysandberg | 0:8c0ecbdd3449 | 206 | 0xA0, 0x15, |
roysandberg | 0:8c0ecbdd3449 | 207 | 0xB0, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 208 | 0xC0, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 209 | 0xFF, 0x04, |
roysandberg | 0:8c0ecbdd3449 | 210 | 0x00, 0x04 |
roysandberg | 0:8c0ecbdd3449 | 211 | }; |
roysandberg | 0:8c0ecbdd3449 | 212 | const Waveform erm_rampup = {ERM,12,erm_rampup_data}; |
roysandberg | 0:8c0ecbdd3449 | 213 | |
roysandberg | 0:8c0ecbdd3449 | 214 | const unsigned char erm_rampdown_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 215 | 0xFF, 0x04, |
roysandberg | 0:8c0ecbdd3449 | 216 | 0xC0, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 217 | 0xB0, 0x10, |
roysandberg | 0:8c0ecbdd3449 | 218 | 0xA0, 0x15, |
roysandberg | 0:8c0ecbdd3449 | 219 | 0x90, 0x15, |
roysandberg | 0:8c0ecbdd3449 | 220 | 0x00, 0x02 |
roysandberg | 0:8c0ecbdd3449 | 221 | }; |
roysandberg | 0:8c0ecbdd3449 | 222 | const Waveform erm_rampdown = {ERM,12,erm_rampdown_data}; |
roysandberg | 0:8c0ecbdd3449 | 223 | |
roysandberg | 0:8c0ecbdd3449 | 224 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 225 | //Subtle LRA Effects |
roysandberg | 0:8c0ecbdd3449 | 226 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 227 | const unsigned char lra_tick_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 228 | 0xFF, 0x02, |
roysandberg | 0:8c0ecbdd3449 | 229 | 0x00, 0x02}; |
roysandberg | 0:8c0ecbdd3449 | 230 | const Waveform lra_tick = {LRA_AUTOON,4,lra_tick_data}; |
roysandberg | 0:8c0ecbdd3449 | 231 | |
roysandberg | 0:8c0ecbdd3449 | 232 | const unsigned char lra_softclick_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 233 | 0xC0, 0x06, |
roysandberg | 0:8c0ecbdd3449 | 234 | 0x00, 0x07}; |
roysandberg | 0:8c0ecbdd3449 | 235 | const Waveform lra_softclick = {LRA_AUTOON,4,lra_softclick_data}; |
roysandberg | 0:8c0ecbdd3449 | 236 | |
roysandberg | 0:8c0ecbdd3449 | 237 | const unsigned char lra_softbump_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 238 | 0xC0, 0x05, |
roysandberg | 0:8c0ecbdd3449 | 239 | 0xA0, 0x07}; |
roysandberg | 0:8c0ecbdd3449 | 240 | const Waveform lra_softbump = {LRA_AUTOON,4,lra_softbump_data}; |
roysandberg | 0:8c0ecbdd3449 | 241 | |
roysandberg | 0:8c0ecbdd3449 | 242 | const unsigned char lra_softalert_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 243 | 0xB0, 0x80}; |
roysandberg | 0:8c0ecbdd3449 | 244 | const Waveform lra_softalert = {LRA_AUTOON,2,lra_softalert_data}; |
roysandberg | 0:8c0ecbdd3449 | 245 | |
roysandberg | 0:8c0ecbdd3449 | 246 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 247 | // Simon LRA Effects |
roysandberg | 0:8c0ecbdd3449 | 248 | //--------------------------------------------------------// |
roysandberg | 0:8c0ecbdd3449 | 249 | const unsigned char lra_rampupdoubleclick_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 250 | LRA_AUTOON_MAX, 0x02, |
roysandberg | 0:8c0ecbdd3449 | 251 | 0x90, 0x40, |
roysandberg | 0:8c0ecbdd3449 | 252 | 0xA0, 0x40, |
roysandberg | 0:8c0ecbdd3449 | 253 | 0xB0, 0x30, |
roysandberg | 0:8c0ecbdd3449 | 254 | 0xD0, 0x20, |
roysandberg | 0:8c0ecbdd3449 | 255 | 0x00, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 256 | LRA_AUTOON_MAX, 0x08, |
roysandberg | 0:8c0ecbdd3449 | 257 | 0x00, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 258 | LRA_AUTOON_MAX, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 259 | 0x00, 0x09 |
roysandberg | 0:8c0ecbdd3449 | 260 | }; |
roysandberg | 0:8c0ecbdd3449 | 261 | const Waveform lra_rampupdoubleclick = {LRA_AUTOON,20,lra_rampupdoubleclick_data}; |
roysandberg | 0:8c0ecbdd3449 | 262 | |
roysandberg | 0:8c0ecbdd3449 | 263 | const unsigned char lra_threeclicks_data[] = { |
roysandberg | 0:8c0ecbdd3449 | 264 | LRA_AUTOON_MAX, 0x02, |
roysandberg | 0:8c0ecbdd3449 | 265 | 0x90, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 266 | 0x00, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 267 | 0xD0, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 268 | 0x00, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 269 | LRA_AUTOON_MAX, 0x0F, |
roysandberg | 0:8c0ecbdd3449 | 270 | 0x00, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 271 | LRA_AUTOON_MAX, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 272 | 0x00, 0x09, |
roysandberg | 0:8c0ecbdd3449 | 273 | LRA_AUTOON_MAX, 0x0C, |
roysandberg | 0:8c0ecbdd3449 | 274 | 0x00, 0x09 |
roysandberg | 0:8c0ecbdd3449 | 275 | }; |
roysandberg | 0:8c0ecbdd3449 | 276 | const Waveform lra_threeclicks = {LRA_AUTOON,22,lra_threeclicks_data}; |