1use super::*;
2
3pub fn model64112() -> Model {
4 let mut ret = Model {
5 start_addr: 0,
6 end_addr: 0,
7 model_number: 64112,
8 qtd: 64,
9 update: false,
10 data: Vec::new(),
11 };
12 ret.data.push(DataTypes::SunspecU16(Point { name: "Port", offset: 2, length: 1, write_access: false, value: 0xFFFF } ));
13 ret.data.push(DataTypes::SunspecI16(Point { name: "V_SF", offset: 1+2, length: 1, write_access: false, value: -32768i16 } ));
14 ret.data.push(DataTypes::SunspecI16(Point { name: "C_SF", offset: 2+2, length: 1, write_access: false, value: -32768i16 } ));
15 ret.data.push(DataTypes::SunspecI16(Point { name: "H_SF", offset: 3+2, length: 1, write_access: false, value: -32768i16 } ));
16 ret.data.push(DataTypes::SunspecI16(Point { name: "P_SF", offset: 4+2, length: 1, write_access: false, value: -32768i16 } ));
17 ret.data.push(DataTypes::SunspecI16(Point { name: "AH_SF", offset: 5+2, length: 1, write_access: false, value: -32768i16 } ));
18 ret.data.push(DataTypes::SunspecI16(Point { name: "KWH_SF", offset: 6+2, length: 1, write_access: false, value: -32768i16 } ));
19 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_fault", offset: 7+2, length: 1, write_access: false, value: 0xFFFF } ));
20 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_absorb_V", offset: 8+2, length: 1, write_access: false, value: 0xFFFF } ));
21 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_absorb_Hr", offset: 9+2, length: 1, write_access: false, value: 0xFFFF } ));
22 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_absorb_End_A", offset: 10+2, length: 1, write_access: false, value: 0xFFFF } ));
23 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_rebulk_V", offset: 11+2, length: 1, write_access: false, value: 0xFFFF } ));
24 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_float_V", offset: 12+2, length: 1, write_access: false, value: 0xFFFF } ));
25 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_max_Chg_A", offset: 13+2, length: 1, write_access: false, value: 0xFFFF } ));
26 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_equalize_V", offset: 14+2, length: 1, write_access: false, value: 0xFFFF } ));
27 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_equalize_Hr", offset: 15+2, length: 1, write_access: false, value: 0xFFFF } ));
28 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_auto_equalize", offset: 16+2, length: 1, write_access: false, value: 0xFFFF } ));
29 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_MPPT_mode", offset: 17+2, length: 1, write_access: false, value: 0xFFFF } ));
30 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_sweep_width", offset: 18+2, length: 1, write_access: false, value: 0xFFFF } ));
31 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_sweep_max", offset: 19+2, length: 1, write_access: false, value: 0xFFFF } ));
32 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_U_Pick_Duty_cyc", offset: 20+2, length: 1, write_access: false, value: 0xFFFF } ));
33 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_grid_tie", offset: 21+2, length: 1, write_access: false, value: 0xFFFF } ));
34 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_temp_comp", offset: 22+2, length: 1, write_access: false, value: 0xFFFF } ));
35 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_temp_comp_llimt", offset: 23+2, length: 1, write_access: false, value: 0xFFFF } ));
36 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_temp_comp_hlimt", offset: 24+2, length: 1, write_access: false, value: 0xFFFF } ));
37 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_auto_restart", offset: 25+2, length: 1, write_access: false, value: 0xFFFF } ));
38 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_wakeup_VOC", offset: 26+2, length: 1, write_access: false, value: 0xFFFF } ));
39 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_snooze_mode_A", offset: 27+2, length: 1, write_access: false, value: 0xFFFF } ));
40 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_wakeup_interval", offset: 28+2, length: 1, write_access: false, value: 0xFFFF } ));
41 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_mode", offset: 29+2, length: 1, write_access: false, value: 0xFFFF } ));
42 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_control", offset: 30+2, length: 1, write_access: false, value: 0xFFFF } ));
43 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_state", offset: 31+2, length: 1, write_access: false, value: 0xFFFF } ));
44 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_polarity", offset: 32+2, length: 1, write_access: false, value: 0xFFFF } ));
45 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_L_Batt_disc", offset: 33+2, length: 1, write_access: false, value: 0xFFFF } ));
46 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_L_Batt_rcon", offset: 34+2, length: 1, write_access: false, value: 0xFFFF } ));
47 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_L_Batt_dly", offset: 35+2, length: 1, write_access: false, value: 0xFFFF } ));
48 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Vent_fan_V", offset: 36+2, length: 1, write_access: false, value: 0xFFFF } ));
49 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_PV_triggerV", offset: 37+2, length: 1, write_access: false, value: 0xFFFF } ));
50 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_PV_trg_h_tm", offset: 38+2, length: 1, write_access: false, value: 0xFFFF } ));
51 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Nlite_ThrsV", offset: 39+2, length: 1, write_access: false, value: 0xFFFF } ));
52 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Nlite_On_tm", offset: 40+2, length: 1, write_access: false, value: 0xFFFF } ));
53 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Nlite_On_hist", offset: 41+2, length: 1, write_access: false, value: 0xFFFF } ));
54 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Nlite_Off_hist", offset: 42+2, length: 1, write_access: false, value: 0xFFFF } ));
55 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Error_batt_V", offset: 43+2, length: 1, write_access: false, value: 0xFFFF } ));
56 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Divert_h_time", offset: 44+2, length: 1, write_access: false, value: 0xFFFF } ));
57 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Divert_dly_time", offset: 45+2, length: 1, write_access: false, value: 0xFFFF } ));
58 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Divert_Rel_V", offset: 46+2, length: 1, write_access: false, value: 0xFFFF } ));
59 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_AUX_Divert_Hyst_V", offset: 47+2, length: 1, write_access: false, value: 0xFFFF } ));
60 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_MajorFWRev", offset: 48+2, length: 1, write_access: false, value: 0xFFFF } ));
61 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_MidFWRev", offset: 49+2, length: 1, write_access: false, value: 0xFFFF } ));
62 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_MinorFWRev", offset: 50+2, length: 1, write_access: false, value: 0xFFFF } ));
63 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Day_offset", offset: 51+2, length: 1, write_access: false, value: 0xFFFF } ));
64 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Cur_Day_off", offset: 52+2, length: 1, write_access: false, value: 0xFFFF } ));
65 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Daily_AH", offset: 53+2, length: 1, write_access: false, value: 0xFFFF } ));
66 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Daily_KWH", offset: 54+2, length: 1, write_access: false, value: 0xFFFF } ));
67 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Max_Out_A", offset: 55+2, length: 1, write_access: false, value: 0xFFFF } ));
68 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Max_Out_W", offset: 56+2, length: 1, write_access: false, value: 0xFFFF } ));
69 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Absorb_T", offset: 57+2, length: 1, write_access: false, value: 0xFFFF } ));
70 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Float_T", offset: 58+2, length: 1, write_access: false, value: 0xFFFF } ));
71 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Min_Batt_V", offset: 59+2, length: 1, write_access: false, value: 0xFFFF } ));
72 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Max_Batt_V", offset: 60+2, length: 1, write_access: false, value: 0xFFFF } ));
73 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Max_Input_V", offset: 61+2, length: 1, write_access: false, value: 0xFFFF } ));
74 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Clear", offset: 62+2, length: 1, write_access: false, value: 0xFFFF } ));
75 ret.data.push(DataTypes::SunspecU16(Point { name: "CC_Config_DataLog_Clr_Comp", offset: 63+2, length: 1, write_access: false, value: 0xFFFF } ));
76
77 ret
78}