1 Star 0 Fork 0

叶海丰/ipmi-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
docs
goipmi
open
utils/md2
.gitignore
CONTRIBUTING.md
LICENSE
Makefile
README.md
client.go
client_auth_code.go
client_auth_code_test.go
cmd_activate_session.go
cmd_add_sel_entry.go
cmd_chassis_control.go
cmd_chassis_identify.go
cmd_chassis_reset.go
cmd_clear_message_flags.go
cmd_clear_sel.go
cmd_close_session.go
cmd_cold_reset.go
cmd_delete_sel_entry.go
cmd_enable_message_channel_receive.go
cmd_get_acpi_power_state.go
cmd_get_auth_code.go
cmd_get_bmc_global_enables.go
cmd_get_bt_interface_capabilities.go
cmd_get_channel_access.go
cmd_get_channel_authentication_capabilities.go
cmd_get_channel_cipher_suites.go
cmd_get_channel_info.go
cmd_get_chassis_capabilities.go
cmd_get_chassis_status.go
cmd_get_command_enables.go
cmd_get_command_subfunction_support.go
cmd_get_command_support.go
cmd_get_configurable_commands.go
cmd_get_device_guid.go
cmd_get_device_id.go
cmd_get_device_sdr.go
cmd_get_device_sdr_info.go
cmd_get_event_receiver.go
cmd_get_fru_inventory_area_info.go
cmd_get_frus.go
cmd_get_ip_statistics.go
cmd_get_lan_config_params.go
cmd_get_message.go
cmd_get_message_flags.go
cmd_get_netfn_support.go
cmd_get_pef_capabilities.go
cmd_get_poh_counter.go
cmd_get_sdr.go
cmd_get_sdr_repo_alloc_info.go
cmd_get_sdr_repo_info.go
cmd_get_sel_alloc_info.go
cmd_get_sel_entry.go
cmd_get_sel_info.go
cmd_get_sel_time.go
cmd_get_sel_time_utc_offset.go
cmd_get_self_test_results.go
cmd_get_sensor_event_enable.go
cmd_get_sensor_event_status.go
cmd_get_sensor_hysteresis.go
cmd_get_sensor_reading.go
cmd_get_sensor_reading_factors.go
cmd_get_sensor_thresholds.go
cmd_get_sensor_type.go
cmd_get_sensors.go
cmd_get_session_challenge.go
cmd_get_session_info.go
cmd_get_sol_config_params.go
cmd_get_supermicro_bios_version.go
cmd_get_system_boot_options.go
cmd_get_system_guid.go
cmd_get_system_interface_capabilities.go
cmd_get_system_restart_cause.go
cmd_get_user_access.go
cmd_get_username.go
cmd_get_watchdog_timer.go
cmd_manufacturing_test_on.go
cmd_master_write_read.go
cmd_open_session.go
cmd_platform_event_message.go
cmd_rakp_message_1_2.go
cmd_rakp_message_3_4.go
cmd_raw.go
cmd_read_event_message_buffer.go
cmd_read_fru_data.go
cmd_reserve_device_sdr_repo.go
cmd_reserve_sel.go
cmd_reset_watchdog_timer.go
cmd_rmcp_ping_request.go
cmd_send_message.go
cmd_set_acpi_power_state.go
cmd_set_bmc_global_enables.go
cmd_set_channel_access.go
cmd_set_chassis_capabilities.go
cmd_set_event_receiver.go
cmd_set_front_panel_enables.go
cmd_set_lan_config_params.go
cmd_set_power_cycle_interval.go
cmd_set_power_restore_policy.go
cmd_set_sel_time.go
cmd_set_sel_time_utc_offset.go
cmd_set_sensor_hysteresis.go
cmd_set_sensor_reading_and_event_status.go
cmd_set_sensor_thresholds.go
cmd_set_sensor_type.go
cmd_set_session_privilege_level.go
cmd_set_sol_config_params.go
cmd_set_system_boot_options.go
cmd_set_system_boot_options_others.go
cmd_set_user_access.go
cmd_set_user_password.go
cmd_set_username.go
cmd_set_watchdog_timer.go
cmd_sol_activating.go
cmd_sol_info.go
cmd_suspend_bmc_arps.go
cmd_warm_reset.go
cmd_write_fru_data.go
cspell.json
errors.go
go.mod
go.sum
helpers.go
helpers_hmac.go
helpers_hmac_test.go
helpers_test.go
interface_lan.go
interface_system.go
interface_tool.go
types_boot_option_parameter.go
types_channel.go
types_cipher_suite_id.go
types_command.go
types_completion_code.go
types_entity.go
types_event.go
types_events.go
types_fru.go
types_generator.go
types_ipmi.go
types_lan_params.go
types_netfn.go
types_oem.go
types_payload.go
types_rmcp.go
types_sdr.go
types_sdr_compact.go
types_sdr_full.go
types_sdr_others.go
types_sdr_others_test.go
types_sel.go
types_sensor.go
types_sensor_test.go
types_session.go
types_sol_config_params.go
types_spd.go
udpclient.go
克隆/下载
cmd_get_sensor_event_status.go 4.91 KB
一键复制 编辑 原始数据 按行查看 历史
叶海丰 提交于 12个月前 . init
package ipmi
import (
"fmt"
"strings"
)
// 35.13 Get Sensor Event Status Command
type GetSensorEventStatusRequest struct {
SensorNumber uint8
}
// For event boolean value, true means the event has occurred.
type GetSensorEventStatusResponse struct {
EventMessagesDisabled bool
SensorScanningDisabled bool
ReadingUnavailable bool
SensorEventFlag
}
func (req *GetSensorEventStatusRequest) Command() Command {
return CommandGetSensorEventStatus
}
func (req *GetSensorEventStatusRequest) Pack() []byte {
out := make([]byte, 1)
packUint8(req.SensorNumber, out, 0)
return out
}
func (res *GetSensorEventStatusResponse) Unpack(msg []byte) error {
if len(msg) < 2 {
return ErrUnpackedDataTooShortWith(len(msg), 2)
}
b1, _, _ := unpackUint8(msg, 0)
res.EventMessagesDisabled = !isBit7Set(b1)
res.SensorScanningDisabled = !isBit6Set(b1)
res.ReadingUnavailable = isBit5Set(b1)
if len(msg) >= 2 {
b2, _, _ := unpackUint8(msg, 1)
res.SensorEvent_UNC_High_Assert = isBit7Set(b2)
res.SensorEvent_UNC_Low_Assert = isBit6Set(b2)
res.SensorEvent_LNR_High_Assert = isBit5Set(b2)
res.SensorEvent_LNR_Low_Assert = isBit4Set(b2)
res.SensorEvent_LCR_High_Assert = isBit3Set(b2)
res.SensorEvent_LCR_Low_Assert = isBit2Set(b2)
res.SensorEvent_LNC_High_Assert = isBit1Set(b2)
res.SensorEvent_LNC_Low_Assert = isBit0Set(b2)
res.SensorEvent_State_7_Assert = isBit7Set(b2)
res.SensorEvent_State_6_Assert = isBit6Set(b2)
res.SensorEvent_State_5_Assert = isBit5Set(b2)
res.SensorEvent_State_4_Assert = isBit4Set(b2)
res.SensorEvent_State_3_Assert = isBit3Set(b2)
res.SensorEvent_State_2_Assert = isBit2Set(b2)
res.SensorEvent_State_1_Assert = isBit1Set(b2)
res.SensorEvent_State_0_Assert = isBit0Set(b2)
}
if len(msg) >= 3 {
b3, _, _ := unpackUint8(msg, 2)
res.SensorEvent_UNR_High_Assert = isBit3Set(b3)
res.SensorEvent_UNR_Low_Assert = isBit2Set(b3)
res.SensorEvent_UCR_High_Assert = isBit1Set(b3)
res.SensorEvent_UCR_Low_Assert = isBit0Set(b3)
res.SensorEvent_State_14_Assert = isBit6Set(b3)
res.SensorEvent_State_13_Assert = isBit5Set(b3)
res.SensorEvent_State_12_Assert = isBit4Set(b3)
res.SensorEvent_State_11_Assert = isBit3Set(b3)
res.SensorEvent_State_10_Assert = isBit2Set(b3)
res.SensorEvent_State_9_Assert = isBit1Set(b3)
res.SensorEvent_State_8_Assert = isBit0Set(b3)
}
if len(msg) >= 4 {
b4, _, _ := unpackUint8(msg, 3)
res.SensorEvent_UNC_High_Deassert = isBit7Set(b4)
res.SensorEvent_UNC_Low_Deassert = isBit6Set(b4)
res.SensorEvent_LNR_High_Deassert = isBit5Set(b4)
res.SensorEvent_LNR_Low_Deassert = isBit4Set(b4)
res.SensorEvent_LCR_High_Deassert = isBit3Set(b4)
res.SensorEvent_LCR_Low_Deassert = isBit2Set(b4)
res.SensorEvent_LNC_High_Deassert = isBit1Set(b4)
res.SensorEvent_LNC_Low_Deassert = isBit0Set(b4)
res.SensorEvent_State_7_Deassert = isBit7Set(b4)
res.SensorEvent_State_6_Deassert = isBit6Set(b4)
res.SensorEvent_State_5_Deassert = isBit5Set(b4)
res.SensorEvent_State_4_Deassert = isBit4Set(b4)
res.SensorEvent_State_3_Deassert = isBit3Set(b4)
res.SensorEvent_State_2_Deassert = isBit2Set(b4)
res.SensorEvent_State_1_Deassert = isBit1Set(b4)
res.SensorEvent_State_0_Deassert = isBit0Set(b4)
}
if len(msg) >= 5 {
b5, _, _ := unpackUint8(msg, 4)
res.SensorEvent_UNR_High_Deassert = isBit3Set(b5)
res.SensorEvent_UNR_Low_Deassert = isBit2Set(b5)
res.SensorEvent_UCR_High_Deassert = isBit1Set(b5)
res.SensorEvent_UCR_Low_Deassert = isBit0Set(b5)
res.SensorEvent_State_14_Deassert = isBit6Set(b5)
res.SensorEvent_State_13_Deassert = isBit5Set(b5)
res.SensorEvent_State_12_Deassert = isBit4Set(b5)
res.SensorEvent_State_11_Deassert = isBit3Set(b5)
res.SensorEvent_State_10_Deassert = isBit2Set(b5)
res.SensorEvent_State_9_Deassert = isBit1Set(b5)
res.SensorEvent_State_8_Deassert = isBit0Set(b5)
}
return nil
}
func (res *GetSensorEventStatusResponse) CompletionCodes() map[uint8]string {
return map[uint8]string{}
}
func (res *GetSensorEventStatusResponse) Format() string {
all := res.SensorEventFlag.TrueEvents()
asserted := SensorEvents(all).FilterAssert()
deasserted := SensorEvents(all).FilterDeassert()
var assertedStr = []string{}
var deassertedStr = []string{}
for _, v := range asserted {
assertedStr = append(assertedStr, v.String())
}
for _, v := range deasserted {
deassertedStr = append(deassertedStr, v.String())
}
return fmt.Sprintf(`Event Messages Disabled : %v
Sensor Scanning Disabled : %v
Reading State Unavailable : %v
Occurred Assert Event : %s
Occurred Deassert Event : %s`,
res.EventMessagesDisabled,
res.SensorScanningDisabled,
res.ReadingUnavailable,
strings.Join(assertedStr, "\n -"),
strings.Join(deassertedStr, "\n --"),
)
}
func (c *Client) GetSensorEventStatus(sensorNumber uint8) (response *GetSensorEventStatusResponse, err error) {
request := &GetSensorEventStatusRequest{
SensorNumber: sensorNumber,
}
response = &GetSensorEventStatusResponse{}
err = c.Exchange(request, response)
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/rogax/ipmi-go.git
git@gitee.com:rogax/ipmi-go.git
rogax
ipmi-go
ipmi-go
86ae46cfb58e

搜索帮助